File: //var/www/iq.affiliate/src/utils/outsideClick.ts
const clickOutside = (element: HTMLElement, callbackFunction: () => void) => {
function onClick(event: MouseEvent) {
if (!event?.target) {
return;
}
if (!element.contains(event.target)) {
callbackFunction();
}
}
document.body.addEventListener('click', (e) => onClick(e));
return {
update(newCallbackFunction: () => void) {
callbackFunction = newCallbackFunction;
},
destroy() {
document.body.removeEventListener('click', onClick);
},
};
};
export default clickOutside;