Skip to content

Commit c9ae917

Browse files
fix: grrrr
1 parent 0a34336 commit c9ae917

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { useEffect } from 'react';
2+
import type { RefObject } from 'react';
3+
4+
function useClickOutside(ref: RefObject<HTMLElement | null>, onClickOutside: () => void): void {
5+
useEffect(() => {
6+
/**
7+
* Invoke Function onClick outside of element
8+
*/
9+
function handleClickOutside(event: MouseEvent): void {
10+
if (ref.current && !ref.current.contains(event.target as Node)) {
11+
onClickOutside();
12+
}
13+
}
14+
// Bind
15+
document.addEventListener("mousedown", handleClickOutside);
16+
return () => {
17+
// dispose
18+
document.removeEventListener("mousedown", handleClickOutside);
19+
};
20+
}, [ref, onClickOutside]);
21+
}
22+
23+
export default useClickOutside;

0 commit comments

Comments
 (0)