diff --git a/src/composables/useKeyPress.ts b/src/composables/useKeyPress.ts index ad76cb5e..8106ece1 100644 --- a/src/composables/useKeyPress.ts +++ b/src/composables/useKeyPress.ts @@ -2,8 +2,8 @@ import { Ref } from 'vue' import { onKeyDown, onKeyPressed, onKeyUp } from '@vueuse/core' import useWindow from './useWindow' import { KeyCode } from '~/types' +import { isInputDOMNode } from '~/utils' -// todo cancel keypress for input dom nodes export default (keyCode: KeyCode, onChange?: (keyPressed: boolean) => void): Ref => { const window = useWindow() const isPressed = controlledRef(false, { @@ -16,7 +16,7 @@ export default (keyCode: KeyCode, onChange?: (keyPressed: boolean) => void): Ref }) onKeyPressed( - (e) => e.key === keyCode || e.keyCode === keyCode, + (e) => !isInputDOMNode(e) && (e.key === keyCode || e.keyCode === keyCode), (e) => { e.preventDefault() isPressed.value = true @@ -24,7 +24,7 @@ export default (keyCode: KeyCode, onChange?: (keyPressed: boolean) => void): Ref ) onKeyDown( - (e) => e.key === keyCode || e.keyCode === keyCode, + (e) => !isInputDOMNode(e) && (e.key === keyCode || e.keyCode === keyCode), (e) => { e.preventDefault() isPressed.value = true @@ -32,7 +32,7 @@ export default (keyCode: KeyCode, onChange?: (keyPressed: boolean) => void): Ref ) onKeyUp( - (event) => event.key === keyCode || event.keyCode === keyCode, + (e) => !isInputDOMNode(e) && (e.key === keyCode || e.keyCode === keyCode), (e) => { e.preventDefault() isPressed.value = false