foxact
Version:
React Hooks/Utils done right. For browser, SSR, and React Server Components.
1 lines • 523 B
JavaScript
;require("client-only");var e=require("react"),t=require("../use-abortable-effect/index.cjs");exports.useDebouncedValue=function(r,u){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("function"==typeof r)throw TypeError("useDebouncedValue does not support function as value");const[o,c]=e.useState(r),i=e.useRef(!0);return t.useEffect(e=>{let t=null;return e.aborted||(n&&i.current?(i.current=!1,c(r)):t=window.setTimeout(()=>{i.current=!0,c(r)},u)),()=>{t&&window.clearTimeout(t)}},[r,n,u]),o};