@rkosafo/cai.components
Version:
This package is under development and not ready for public use.
15 lines (14 loc) • 449 B
JavaScript
export function clickOutsideAction(node, callback) {
const handleClick = (event) => {
if (event.target !== null && !node.contains(event.target)) {
node.dispatchEvent(new CustomEvent("clickoutside"));
callback?.();
}
};
document.addEventListener("click", handleClick, true);
return {
destroy() {
document.removeEventListener("click", handleClick, true);
},
};
}