fix(core): pass selectionKeyCode ref to useKeyPress

Signed-off-by: braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
braks
2023-05-05 11:02:58 +02:00
committed by Braks
parent edb01a735e
commit 85dcbf4b46
2 changed files with 49 additions and 45 deletions
+48 -44
View File
@@ -51,60 +51,64 @@ export default (keyFilter: MaybeComputedRef<KeyFilter | null>, onChange?: (keyPr
onChange?.(isPressed.value) onChange?.(isPressed.value)
}) })
watchEffect(() => { watch(
let unrefKeyFilter = resolveUnref(keyFilter) () => resolveUnref(keyFilter),
(unrefKeyFilter) => {
if (window && typeof window.addEventListener !== 'undefined') {
useEventListener(window, 'blur', () => {
isPressed.value = false
})
}
if (window && typeof window.addEventListener !== 'undefined') { if (isBoolean(unrefKeyFilter)) {
useEventListener(window, 'blur', () => { isPressed.value = unrefKeyFilter
isPressed.value = false return
}) }
}
if (isBoolean(unrefKeyFilter)) { if (Array.isArray(unrefKeyFilter)) {
isPressed.value = unrefKeyFilter unrefKeyFilter = createKeyPredicate(unrefKeyFilter, pressedKeys.value)
return }
}
if (Array.isArray(unrefKeyFilter)) { if (unrefKeyFilter) {
unrefKeyFilter = createKeyPredicate(unrefKeyFilter, pressedKeys.value) onKeyStroke(
} unrefKeyFilter,
(e) => {
modifierPressed.value = wasModifierPressed(e)
if (unrefKeyFilter) {
onKeyStroke(
unrefKeyFilter,
(e) => {
modifierPressed.value = wasModifierPressed(e)
if (!modifierPressed.value && isInputDOMNode(e)) {
return
}
e.preventDefault()
isPressed.value = true
},
{ eventName: 'keydown' },
)
onKeyStroke(
unrefKeyFilter,
(e) => {
if (isPressed.value) {
if (!modifierPressed.value && isInputDOMNode(e)) { if (!modifierPressed.value && isInputDOMNode(e)) {
return return
} }
modifierPressed.value = false e.preventDefault()
pressedKeys.value.clear() isPressed.value = true
},
{ eventName: 'keydown' },
)
isPressed.value = false onKeyStroke(
} unrefKeyFilter,
}, (e) => {
{ eventName: 'keyup' }, if (isPressed.value) {
) if (!modifierPressed.value && isInputDOMNode(e)) {
} return
}) }
modifierPressed.value = false
pressedKeys.value.clear()
isPressed.value = false
}
},
{ eventName: 'keyup' },
)
}
},
{
immediate: true,
},
)
return isPressed return isPressed
} }
@@ -92,7 +92,7 @@ onMounted(() => {
viewportRef: viewportElement, viewportRef: viewportElement,
}) })
useKeyPress(selectionKeyCode, (keyPress) => { useKeyPress($$(selectionKeyCode), (keyPress) => {
selectionKeyPressed = keyPress selectionKeyPressed = keyPress
}) })