MCPcopy Create free account
hub / github.com/dailydotdev/apps / useOutsideClick

Function useOutsideClick

packages/shared/src/hooks/utils/useOutsideClick.ts:4–25  ·  view source on GitHub ↗
(
  ref: RefObject<HTMLElement>,
  callback: (e: MouseEvent) => void,
  enabled: boolean,
)

Source from the content-addressed store, hash-verified

2import { useEventListener } from '../useEventListener';
3
4export const useOutsideClick = (
5 ref: RefObject<HTMLElement>,
6 callback: (e: MouseEvent) => void,
7 enabled: boolean,
8): void => {
9 useEventListener(
10 typeof window === 'undefined' ? null : window,
11 'click',
12 (e) => {
13 if (!enabled) {
14 return;
15 }
16
17 const currentElement = ref.current;
18 if (!currentElement || currentElement.contains(e.target as Node)) {
19 return;
20 }
21
22 callback(e);
23 },
24 );
25};

Callers 3

RailMoreMenuFunction · 0.90
SidebarShortcutsDockFunction · 0.90
InteractivePopupFunction · 0.90

Calls 2

useEventListenerFunction · 0.90
callbackFunction · 0.50

Tested by

no test coverage detected