use-debouncy
Version:
🌀 Small (~0.2kb) debounce effect hook for React with TypeScript support
1 lines • 472 B
JavaScript
;var e=require("react"),r=(r,n=0)=>{const t=e.useRef(0),a=e.useCallback(((...e)=>{cancelAnimationFrame(t.current);const a=performance.now(),c=i=>{i-a<n?t.current=requestAnimationFrame(c):r(...e)};t.current=requestAnimationFrame(c)}),[r,n]);return e.useEffect((()=>()=>cancelAnimationFrame(t.current)),[]),a},n=[],t=r;exports.useDebouncyEffect=(t,a=0,c=n)=>{const i=e.useRef(1),o=r(t,a);e.useEffect((()=>{i.current?i.current=0:o()}),c)},exports.useDebouncyFn=t;