UNPKG

@forbespro/lead-agent

Version:
2 lines (1 loc) 2.02 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react");function E(c,r,a){var p=this,i=t.useRef(null),o=t.useRef(0),e=t.useRef(null),f=t.useRef([]),l=t.useRef(),s=t.useRef(),A=t.useRef(c),m=t.useRef(!0);A.current=c;var w=typeof window!="undefined",d=!r&&r!==0&&w;if(typeof c!="function")throw new TypeError("Expected a function");r=+r||0;var D=!!(a=a||{}).leading,S=!("trailing"in a)||!!a.trailing,v="maxWait"in a,F="debounceOnServer"in a&&!!a.debounceOnServer,y=v?Math.max(+a.maxWait||0,r):null;t.useEffect(function(){return m.current=!0,function(){m.current=!1}},[]);var O=t.useMemo(function(){var h=function(n){var u=f.current,g=l.current;return f.current=l.current=null,o.current=n,s.current=A.current.apply(g,u)},R=function(n,u){d&&cancelAnimationFrame(e.current),e.current=d?requestAnimationFrame(n):setTimeout(n,u)},M=function(n){if(!m.current)return!1;var u=n-i.current;return!i.current||u>=r||u<0||v&&n-o.current>=y},T=function(n){return e.current=null,S&&f.current?h(n):(f.current=l.current=null,s.current)},x=function n(){var u=Date.now();if(M(u))return T(u);if(m.current){var g=r-(u-i.current),k=v?Math.min(g,y-(u-o.current)):g;R(n,k)}},b=function(){if(w||F){var n=Date.now(),u=M(n);if(f.current=[].slice.call(arguments),l.current=p,i.current=n,u){if(!e.current&&m.current)return o.current=i.current,R(x,r),D?h(i.current):s.current;if(v)return R(x,r),h(i.current)}return e.current||R(x,r),s.current}};return b.cancel=function(){e.current&&(d?cancelAnimationFrame(e.current):clearTimeout(e.current)),o.current=0,f.current=i.current=l.current=e.current=null},b.isPending=function(){return!!e.current},b.flush=function(){return e.current?T(Date.now()):s.current},b},[D,v,r,y,S,d,w,F]);return O}function q(c,r){return c===r}function C(c,r,a){var p=q,i=t.useRef(c),o=t.useState({})[1],e=E(t.useCallback(function(l){i.current=l,o({})},[o]),r,a),f=t.useRef(c);return p(f.current,c)||(e(c),f.current=c),[i.current,e]}exports.useDebounce=C;exports.useDebouncedCallback=E;