Total Complexity | 4 |
Complexity/F | 2 |
Lines of Code | 21 |
Function Count | 2 |
Duplicated Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | export const clickOutside = ( |
||
2 | node: HTMLElement, |
||
3 | callback: () => void |
||
4 | ): { |
||
5 | destroy: () => void; |
||
6 | } => { |
||
7 | const handleClick = (event: Event) => { |
||
8 | if (!node.contains(event.target as HTMLElement)) { |
||
9 | callback(); |
||
10 | } |
||
11 | }; |
||
12 | |||
13 | document.addEventListener("click", handleClick, true); |
||
14 | |||
15 | return { |
||
16 | destroy() { |
||
17 | document.removeEventListener("click", handleClick, true); |
||
18 | }, |
||
19 | }; |
||
20 | }; |
||
21 |