react-box-tools
Version:
Box tools react components, utils and hooks
2 lines (1 loc) • 540 B
JavaScript
const r=require("react"),i=typeof window<"u"?r.useLayoutEffect:r.useEffect;function f(t,s,e,u){const n=r.useRef(s);i(()=>{n.current=s},[s]),r.useEffect(()=>{const c=(e==null?void 0:e.current)??window;if(!(c&&c.addEventListener))return;const o=E=>{n.current(E)};return c.addEventListener(t,o,u),()=>{c.removeEventListener(t,o)}},[t,e,u])}function d(t,s,e="mousedown"){f(e,u=>{const n=t==null?void 0:t.current;!n||n.contains(u.target)||s(u)})}exports.useEventListener=f;exports.useIsomorphicLayoutEffect=i;exports.useOutClick=d;
;