@react-hook/debounce
Version:
A React hook for debouncing setState and other callbacks
3 lines (2 loc) • 665 B
JavaScript
import{useRef as r,useEffect as t,useCallback as e,useState as n}from"react";import u from"@react-hook/latest";var o=function(n,o,c){function i(){l.current&&clearTimeout(l.current),l.current=void 0}function a(){l.current=void 0}void 0===o&&(o=100),void 0===c&&(c=0);var v=u(n),l=r(),m=[o,c,v];return t(()=>i,m),e((function(){var r=arguments,{current:t}=l;if(void 0===t&&c)return l.current=setTimeout(a,o),v.current.apply(null,r);t&&clearTimeout(t),l.current=setTimeout(()=>{l.current=void 0,v.current.apply(null,r)},o)}),m)},c=(r,t,e)=>{var u=n(r);return[u[0],o(u[1],t,e),u[1]]};export{c as useDebounce,o as useDebounceCallback};
//# sourceMappingURL=index.mjs.map