diff --git a/packages/core/src/composables/useKeyPress.ts b/packages/core/src/composables/useKeyPress.ts index 91957bb0..3cd41631 100644 --- a/packages/core/src/composables/useKeyPress.ts +++ b/packages/core/src/composables/useKeyPress.ts @@ -10,7 +10,7 @@ function isInputDOMNode(event: KeyboardEvent): boolean { return ['INPUT', 'SELECT', 'TEXTAREA'].includes(target?.nodeName) || hasAttribute || !!closest } -export default (keyFilter: MaybeRef, onChange?: (keyPressed: boolean) => void): Ref => { +export default (keyFilter: MaybeRef, onChange?: (keyPressed: boolean) => void): Ref => { const window = useWindow() let isPressed = $ref(unref(keyFilter) === true) @@ -27,27 +27,29 @@ export default (keyFilter: MaybeRef, onChange?: (keyPressed: boolean) return } - onKeyStroke( - unrefKeyFilter, - (e) => { - if (isInputDOMNode(e)) return + if (unrefKeyFilter) { + onKeyStroke( + unrefKeyFilter, + (e) => { + if (isInputDOMNode(e)) return - e.preventDefault() - isPressed = true - }, - { eventName: 'keydown' }, - ) + e.preventDefault() + isPressed = true + }, + { eventName: 'keydown' }, + ) - onKeyStroke( - unrefKeyFilter, - (e) => { - if (isInputDOMNode(e)) return + onKeyStroke( + unrefKeyFilter, + (e) => { + if (isInputDOMNode(e)) return - e.preventDefault() - isPressed = false - }, - { eventName: 'keyup' }, - ) + e.preventDefault() + isPressed = false + }, + { eventName: 'keyup' }, + ) + } }) if (typeof window.addEventListener !== 'undefined') { diff --git a/packages/core/src/types/flow.ts b/packages/core/src/types/flow.ts index e6083bfe..1244a868 100644 --- a/packages/core/src/types/flow.ts +++ b/packages/core/src/types/flow.ts @@ -113,10 +113,10 @@ export interface FlowProps { /** @deprecated use {@link ConnectionLineOptions.style} */ connectionLineStyle?: CSSProperties | null connectionLineOptions?: ConnectionLineOptions - deleteKeyCode?: KeyFilter - selectionKeyCode?: KeyFilter - multiSelectionKeyCode?: KeyFilter - zoomActivationKeyCode?: KeyFilter + deleteKeyCode?: KeyFilter | null + selectionKeyCode?: KeyFilter | null + multiSelectionKeyCode?: KeyFilter | null + zoomActivationKeyCode?: KeyFilter | null snapToGrid?: boolean snapGrid?: SnapGrid onlyRenderVisibleElements?: boolean diff --git a/packages/core/src/types/store.ts b/packages/core/src/types/store.ts index 22c082a2..56c1fb4f 100644 --- a/packages/core/src/types/store.ts +++ b/packages/core/src/types/store.ts @@ -65,10 +65,10 @@ export interface State extends Omit { userSelectionActive: boolean multiSelectionActive: boolean - deleteKeyCode: KeyFilter - selectionKeyCode: KeyFilter - multiSelectionKeyCode: KeyFilter - zoomActivationKeyCode: KeyFilter + deleteKeyCode: KeyFilter | null + selectionKeyCode: KeyFilter | null + multiSelectionKeyCode: KeyFilter | null + zoomActivationKeyCode: KeyFilter | null connectionMode: ConnectionMode connectionLineOptions: ConnectionLineOptions