feat: click outside directives

This commit is contained in:
Methapon2001 2023-12-07 10:46:10 +07:00
parent 5ff294be3d
commit 6016699ec6
No known key found for this signature in database
GPG key ID: 849924FEF46BD132

View file

@ -0,0 +1,15 @@
import type { ObjectDirective } from 'vue'
export const clickOutside = {
beforeMount(element, binding) {
element.clickOutsideEvent = (e: MouseEvent) => {
if (!(element === e.target || element.contains(e.target))) {
binding.value(e)
}
}
document.addEventListener('click', element.clickOutsideEvent)
},
unmounted(element) {
document.removeEventListener('click', element.clickOutsideEvent)
},
} satisfies ObjectDirective