mirror of
https://github.com/kevin-DL/build-gmail-clone-with-vue-3.git
synced 2026-01-21 06:44:58 +00:00
37 lines
655 B
Vue
37 lines
655 B
Vue
<template>
|
|
<div class="modal">
|
|
<div class="overlay" @click="emit('closeModal')"></div>
|
|
<div class="modal-card">
|
|
<slot />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { onBeforeUnmount } from 'vue'
|
|
|
|
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)
|
|
})
|
|
|
|
return {
|
|
emit
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
|
|
</style> |