refactor: update usekeypress functions

This commit is contained in:
Braks
2021-10-20 22:39:54 +02:00
parent 3557284a40
commit fec2ef40da
+11 -12
View File
@@ -1,40 +1,39 @@
import { Ref } from 'vue' import { Ref } from 'vue'
import { KeyCode } from '../types' import { onKeyDown, onKeyPressed, onKeyUp } from '@vueuse/core'
import { controlledRef, onKeyStroke, useEventListener } from '@vueuse/core' import { KeyCode } from '~/types'
export default (keyCode?: KeyCode, cb?: (keyPress: boolean) => void): Ref<boolean> => { export default (keyCode: KeyCode, cb?: (keyPress: boolean) => void): Ref<boolean> => {
const keyPressed = controlledRef<boolean>(false, { const keyPressed = controlledRef<boolean>(false, {
onBeforeChange(val, oldVal) { onBeforeChange(val, oldVal) {
if (val === oldVal) return false if (val === oldVal) return false
}, },
onChanged() { onChanged() {
if (cb && typeof cb === 'function') cb(keyPressed.value) if (cb && typeof cb === 'function') cb(keyPressed.value)
} },
}) })
onKeyStroke( onKeyPressed(
(event) => event.key === keyCode || event.keyCode === keyCode, (e) => e.key === keyCode || e.keyCode === keyCode,
(e) => { (e) => {
e.preventDefault() e.preventDefault()
keyPressed.value = true keyPressed.value = true
}, },
{ eventName: 'keypress' }
) )
onKeyStroke(
(event) => event.key === keyCode || event.keyCode === keyCode, onKeyDown(
(e) => e.key === keyCode || e.keyCode === keyCode,
(e) => { (e) => {
e.preventDefault() e.preventDefault()
keyPressed.value = true keyPressed.value = true
}, },
{ eventName: 'keydown' }
) )
onKeyStroke(
onKeyUp(
(event) => event.key === keyCode || event.keyCode === keyCode, (event) => event.key === keyCode || event.keyCode === keyCode,
(e) => { (e) => {
e.preventDefault() e.preventDefault()
keyPressed.value = false keyPressed.value = false
}, },
{ eventName: 'keyup' }
) )
useEventListener(window, 'blur', () => { useEventListener(window, 'blur', () => {