{"version":3,"sources":["../../src/useDebounce/useDebounce.ts"],"names":["useCallback","useEffect","useRef","useState","useDebouncedCallback","useDebounce","value","delay","options","_a","compareValueDefault","left","right","compareValue","state","setState","callback","cancel","callPending","currentValue","previousValue","useDebounce_default"],"mappings":"8BAAA,OAAS,eAAAA,EAAa,aAAAC,EAAW,UAAAC,EAAQ,YAAAC,MAAgB,QACzD,OAAOC,MAA0B,8CAGjC,MAAMC,EAA2B,CAACC,EAAOC,EAAOC,IAAY,CAJ5D,IAAAC,EAKE,MAAMC,EAAkDV,EACtD,CAACW,EAAMC,IAAUD,IAASC,EAC1B,CAAC,CACH,EAEMC,GAAeJ,EAAAD,GAAA,YAAAA,EAAS,eAAT,KAAAC,EAAyBC,EAExC,CAACI,EAAOC,CAAQ,EAAIZ,EAASG,CAAK,EAElC,CAACU,EAAUC,EAAQC,CAAW,EAAId,EACtCJ,EAAamB,GAA+BJ,EAASI,CAAY,EAAG,CAAC,CAAC,EACtEZ,EACAC,CACF,EAEMY,EAAgBlB,EAAOI,CAAK,EAElC,OAAAL,EAAU,IAAM,CACTY,EAAaO,EAAc,QAASd,CAAK,IAC5CU,EAASV,CAAK,EACdc,EAAc,QAAUd,EAE5B,EAAG,CAACA,EAAOU,EAAUH,CAAY,CAAC,EAE3B,CAACC,EAAOG,EAAQC,CAAW,CACpC,EAEA,IAAOG,EAAQhB","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport useDebouncedCallback from '../useDebounceCallback/useDebouncedCallback';\nimport type { UseDebounce, CompareValue } from './types';\n\nconst useDebounce: UseDebounce = (value, delay, options) => {\n  const compareValueDefault: CompareValue<typeof value> = useCallback(\n    (left, right) => left === right,\n    []\n  );\n\n  const compareValue = options?.compareValue ?? compareValueDefault;\n\n  const [state, setState] = useState(value);\n\n  const [callback, cancel, callPending] = useDebouncedCallback(\n    useCallback((currentValue: typeof value) => setState(currentValue), []),\n    delay,\n    options\n  );\n\n  const previousValue = useRef(value);\n\n  useEffect(() => {\n    if (!compareValue(previousValue.current, value)) {\n      callback(value);\n      previousValue.current = value;\n    }\n  }, [value, callback, compareValue]);\n\n  return [state, cancel, callPending];\n};\n\nexport default useDebounce;\n"]}