UNPKG

react-clickout-ts

Version:
59 lines 1.43 kB
import { c as _c } from "react/compiler-runtime"; import { useEffect } from 'react'; export const useClickOutside = (ref, t0) => { const $ = _c(8); const { enabled: t1, ignoredElements: t2, onClickOut } = t0; const enabled = t1 === undefined ? true : t1; let t3; if ($[0] !== t2) { t3 = t2 === undefined ? [] : t2; $[0] = t2; $[1] = t3; } else { t3 = $[1]; } const ignoredElements = t3; let t4; let t5; if ($[2] !== enabled || $[3] !== ignoredElements || $[4] !== onClickOut || $[5] !== ref) { t4 = () => { if (!enabled) { return; } const handler = event => { const target = event.target; if (!target || ref.current?.contains(target)) { return; } if (ignoredElements.some(ignored => ignored.current?.contains(target))) { return; } onClickOut?.(event); }; const types = ["click", "touchstart"]; for (const type of types) { document.addEventListener(type, handler); } return () => { for (const type_0 of types) { document.removeEventListener(type_0, handler); } }; }; t5 = [enabled, ignoredElements, onClickOut, ref]; $[2] = enabled; $[3] = ignoredElements; $[4] = onClickOut; $[5] = ref; $[6] = t4; $[7] = t5; } else { t4 = $[6]; t5 = $[7]; } useEffect(t4, t5); };