UNPKG

react-box-tools

Version:

Box tools react components, utils and hooks

2 lines (1 loc) 540 B
"use strict";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;