@thibault.sh/hooks
Version:
A comprehensive collection of React hooks for browser storage, UI interactions, and more
1 lines • 1.1 kB
Source Map (JSON)
{"version":3,"sources":["../src/hooks/useDebounce.ts"],"names":["useDebounce","value","delay","debouncedValue","setDebouncedValue","useState","useEffect","timer"],"mappings":"uCAQO,SAASA,CAAAA,CAAeC,EAAUC,CAAkB,CAAA,CACzD,GAAM,CAACC,CAAAA,CAAgBC,CAAiB,CAAIC,CAAAA,QAAAA,CAAYJ,CAAK,CAE7D,CAAA,OAAAK,SAAU,CAAA,IAAM,CACd,IAAMC,EAAQ,UAAW,CAAA,IAAM,CAC7BH,CAAkBH,CAAAA,CAAK,EACzB,CAAGC,CAAAA,CAAK,EAER,OAAO,IAAM,CACX,YAAaK,CAAAA,CAAK,EACpB,CACF,CAAA,CAAG,CAACN,CAAOC,CAAAA,CAAK,CAAC,CAAA,CAEVC,CACT","file":"useDebounce.mjs","sourcesContent":["import { useState, useEffect } from \"react\";\n\n/**\n * Hook that debounces a value\n * @param value - The value to debounce\n * @param delay - The delay in milliseconds\n * @returns The debounced value\n */\nexport function useDebounce<T>(value: T, delay: number): T {\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n\n return debouncedValue;\n} "]}