diff options
Diffstat (limited to 'packages/web/src/hooks/use-debounce.ts')
| -rw-r--r-- | packages/web/src/hooks/use-debounce.ts | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/packages/web/src/hooks/use-debounce.ts b/packages/web/src/hooks/use-debounce.ts new file mode 100644 index 0000000..cf5221f --- /dev/null +++ b/packages/web/src/hooks/use-debounce.ts @@ -0,0 +1,19 @@ +"use client"; + +import { useEffect, useState } from "react"; + +export function useDebounce<T>(value: T, delay: number): T { + const [debouncedValue, setDebouncedValue] = useState<T>(value); + + useEffect(() => { + const timeoutId = setTimeout(() => { + setDebouncedValue(value); + }, delay); + + return () => { + clearTimeout(timeoutId); + }; + }, [value, delay]); + + return debouncedValue; +} |