MCPcopy Create free account
hub / github.com/api-platform/website / useOnClickOutside

Function useOnClickOutside

pwa/hooks/useOnClickOutside.tsx:5–23  ·  view source on GitHub ↗
(
  ref: RefObject<T>,
  handler: Handler
)

Source from the content-addressed store, hash-verified

3type Handler = (event: MouseEvent | TouchEvent) => void;
4
5export default function useOnClickOutside<T extends HTMLElement = HTMLElement>(
6 ref: RefObject<T>,
7 handler: Handler
8) {
9 useEffect(() => {
10 const listener = (event: MouseEvent | TouchEvent) => {
11 if (!ref.current || ref.current.contains(event?.target as Node)) {
12 return;
13 }
14 handler(event);
15 };
16 document.addEventListener("mousedown", listener);
17 document.addEventListener("touchstart", listener);
18 return () => {
19 document.removeEventListener("mousedown", listener);
20 document.removeEventListener("touchstart", listener);
21 };
22 }, [ref, handler]);
23}

Callers 2

ReferenceFilterDropdownFunction · 0.85
MobileSideBarFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected