diff --git a/daily-thought-frontend/src/hooks/useDebounce.ts b/daily-thought-frontend/src/hooks/useDebounce.ts new file mode 100644 index 0000000000000000000000000000000000000000..c55868fa6bd0d826d216c8fbce0936202e878fc9 --- /dev/null +++ b/daily-thought-frontend/src/hooks/useDebounce.ts @@ -0,0 +1,17 @@ +import { useEffect, useState } from 'react' + +function useDebounce<T>(value: T, delay?: number): T { + const [debouncedValue, setDebouncedValue] = useState<T>(value) + + useEffect(() => { + const timer = setTimeout(() => setDebouncedValue(value), delay || 500) + + return () => { + clearTimeout(timer) + } + }, [value, delay]) + + return debouncedValue +} + +export default useDebounce \ No newline at end of file