generated from tpl/obsidian-sample-plugin
19 lines
379 B
TypeScript
19 lines
379 B
TypeScript
export function clickOutside(node: Node, cb: () => void) {
|
|
function handleClick(event: MouseEvent) {
|
|
if (
|
|
node &&
|
|
!node.contains(event.target as Node) &&
|
|
!event.defaultPrevented
|
|
) {
|
|
cb();
|
|
}
|
|
}
|
|
document.addEventListener("click", handleClick, true);
|
|
return {
|
|
update() {},
|
|
destroy() {
|
|
document.removeEventListener("click", handleClick, true);
|
|
},
|
|
};
|
|
}
|