-
Notifications
You must be signed in to change notification settings - Fork 420
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(keyboard): bind-method typing still requires EventTarget #948
Conversation
I would prefer removing the parameter from the generated typing entirely if it is possible. I don't know whether the type-generation tooling has a handling for this use case, as |
CC @jarekdanielak I believe a follow-up is needed (this PR, to be checked) to properly move fix our type definitions, too. |
Thanks @torge-hmn for the PR ⭐ . We'll have a look. |
@@ -125,7 +125,7 @@ Keyboard.prototype._isEventIgnored = function(event) { | |||
/** | |||
* Bind keyboard events to the given DOM node. | |||
* | |||
* @param {EventTarget} node | |||
* @param {undefined} node | |||
*/ | |||
Keyboard.prototype.bind = function(node) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should rather fix the method signature, not require any argument, and check whether an argument is provided via arguments[0]
. This change looks odd.
Keyboard.prototype.bind = function(node) { | |
Keyboard.prototype.bind = function() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed via 36316be.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Much better solution, thank you! 👍 (I wasn't sure if I could change the signature tbh)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We want to ensure that any signature change is tested; in this case I marked the old behavior as deprecated; it will throw at run-time. In the future we want to remove it all together.
6798456
to
36316be
Compare
36316be
to
3a8434a
Compare
@jarekdanielak Ready for your review! |
Co-authored-by: Jarek Danielak <jarek.danielak@camunda.com>
Thanks @torge-hmn for the report + initial fix. |
Thanks for fixing! 👍 |
Published via diagram-js@15.2.2. |
# Changes Siehe Changelog: https://github.com/bpmn-io/diagram-js/blob/develop/CHANGELOG.md ## 15.2.4 * `FIX`: canvas `autoFocus` must explicitly be enabled ([bpmn-io#956](bpmn-io#956)) * `FIX`: properly integrate `zoomscroll` with canvas focus ([bpmn-io#956](bpmn-io#956)) * `FIX`: properly integrate `movecanvas` with canvas focus ([bpmn-io#956](bpmn-io#956)) ## 15.2.3 * `FIX`: adjust search to prioritize start of word and exact matches ([bpmn-io#953](bpmn-io#953)) * `FIX`: ignore whitespace when searching ([bpmn-io#954](bpmn-io#954)) ## 15.2.2 * `FIX`: correct `Keyboard#bind` and config types ([bpmn-io#948](bpmn-io#948)) ## 15.2.1 * `FIX`: limit overly permissive regex ([bpmn-io#949](bpmn-io#949)) ## 15.2.0 * `FIX`: clear selection when opening search pad ([bpmn-io#947](bpmn-io#947)) * `FIX`: correct dangling selection after search pad interaction ([bpmn-io#947](bpmn-io#947)) * `CHORE`: simplify search pad pre-selection behavior ([bpmn-io#947](bpmn-io#947)) ## 15.1.0 * `FEAT`: integrate `popup-menu` with `search` ([bpmn-io#932](bpmn-io#932)) * `FEAT`: recognize modern `search` tokens in `search-pad` ([bpmn-io#932](bpmn-io#932)) * `FEAT`: improve `search` types ([bpmn-io#932](bpmn-io#932)) * `FIX`: correctly handle duplicate entries and whitespace in `search` ([bpmn-io#932](bpmn-io#932)) * `FIX`: find `search` terms across all keys ([bpmn-io#932](bpmn-io#932)) * `FIX`: `search` always returns tokens for matched items ([bpmn-io#932](bpmn-io#932)) ## 15.0.0 * `FEAT`: make canvas browser selectable ([bpmn-io#659](bpmn-io#659)) * `FEAT`: make keyboard binding implicit ([bpmn-io#661](bpmn-io#661)) * `FEAT`: make multi-selection outline an outline concern ([bpmn-io#944](bpmn-io#944)) ### Breaking Changes * `Keyboard` binding target can no longer be chosen. Configure keyboard binding via the `keyboard.bind` configuration and rely on keybindings to work if the canvas has browser focus. ([bpmn-io#661](bpmn-io#661)) * The `Canvas` is now a focusable component, that is recognized accordingly by the browser, with all benefits for UX and interaction. Components that pull focus from the `Canvas` during modeling must ensure to restore the focus (if intended), via `Canvas#restoreFocus`. ([bpmn-io#661](bpmn-io#661)) * The `selection` feature does not provide visual outline by default anymore. Use the `outline` feature to re-enable it. ([bpmn-io#944](bpmn-io#944)) ## 14.11.3 * `CHORE`: simplify viewbox cloning ([bpmn-io#935](bpmn-io#935)) ## 14.11.2 * `FIX`: restore search result highlight ([bpmn-io#931](bpmn-io#931)) * `FIX`: correct search result highlight not being removed ([bpmn-io#931](bpmn-io#931)) * `FIX`: do not change zoom when search openes ([bpmn-io#931](bpmn-io#931)) ## 14.11.1 _Partially reverts v14.11.0._ * `FIX`: revert `search` integration into popup menu ## 14.11.0 * `FEAT`: add `search` utility * `FEAT`: sort popup entry search results semantically ([bpmn-io#916](bpmn-io#916)) ## 14.10.0 * `FEAT`: align search styling with other popups ([bpmn-io#913](bpmn-io#913)) * `CHORE`: use existing outline in search ([bpmn-io#913](bpmn-io#913)) * `FIX`: only commit search viewport changes on `ENTER` ([bpmn-io#913](bpmn-io#913)) ## 14.9.0 * `CHORE`: export types compatible with `verbatimModuleSyntax` ([bpmn-io#927](bpmn-io#927), [bpmn-io#864](bpmn-io#864)) * `CHORE`: re-compute context pad position next frame ([bpmn-io#920](bpmn-io#920))
Proposed Changes
In a previous update the ability to bind the keyboard to a specific node has been removed. The current JS-doc resulted in a generated type definition still requiring an
EventTarget
as parameter for thebind
method even though supplying this parameter leads to an error and has no effect.Prior (generated
Keyboard.d.ts
):After:
Checklist
To ensure you provided everything we need to look at your PR:
@bpmn-io/sr
tool: Just use type generationRelated to #662