Lesson 8 - use-keydown composable

This commit is contained in:
Jeffrey Biles
2020-07-02 16:22:54 -07:00
parent fa0cb214f8
commit d3fc83dd9c
2 changed files with 23 additions and 15 deletions

View File

@@ -8,23 +8,14 @@
</template>
<script>
import { onBeforeUnmount } from 'vue'
import useKeydown from '../composables/use-keydown';
export default {
setup(props, {emit}) {
let onKeydown = (event) => {
console.log(event.key)
if(event.key == 'Escape') {
emit('closeModal')
}
}
window.addEventListener('keydown', onKeydown)
onBeforeUnmount(()=>{
window.removeEventListener('keydown', onKeydown)
})
useKeydown([
{key: 'Escape', fn: () => { emit('closeModal') }},
])
return {
emit
}

View File

@@ -0,0 +1,17 @@
import { onBeforeUnmount } from 'vue'
let useKeydown = (keyCombos) => {
let onKeydown = (event) => {
let kc = keyCombos.find(kc => kc.key == event.key)
if(kc) {
kc.fn()
}
}
window.addEventListener('keydown', onKeydown)
onBeforeUnmount(()=>{
window.removeEventListener('keydown', onKeydown)
})
}
export default useKeydown;