blob: ee7db1439901d807f2293f87325a3916d793aa43 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import {onBeforeUnmount, onMounted} from "vue";
export default function useDetectOutsideClick(component, callback) {
if (!component) return;
function listener(event) {
if (event.target !== component.value && event.composedPath().includes(component.value)) {
return;
}
if (typeof callback === 'function') {
callback();
}
}
onMounted(() => { window.addEventListener('click', listener) });
onBeforeUnmount(() => { window.removeEventListener('click', listener) });
return {listener};
}
|