@enjoys/react-api
Version:
1 lines • 676 B
JavaScript
import {useRef,useCallback}from'react';var T=(e,i)=>{let r;return (...n)=>{clearTimeout(r),r=setTimeout(()=>e(...n),i);}};function w(e,i){let r=useRef(false),n=useCallback(t=>{console.log("Event Fired"),window.dispatchEvent(new CustomEvent(e,{detail:t}));},[e]),a=useCallback(t=>{r.current||(n(t),r.current=true);},[n]),u=useCallback(t=>T(s=>{n(s);},t),[n]),d=useCallback(t=>{let o=s=>t(s.detail);return window.addEventListener(e,o),()=>window.removeEventListener(e,o)},[e]),l=useCallback(t=>{let o=s=>{t(s.detail),window.removeEventListener(e,o);};window.addEventListener(e,o);},[e]);return {emit:n,emitOnce:a,emitDebounce:u,listen:d,listenOnce:l}}export{w as useReactEvent};