We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 0a34336 commit c9ae917Copy full SHA for c9ae917
frontend/src/utils/Hooks/useClickOutside.ts
@@ -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