Files
AthenaFE/hooks/useDebounce.ts
T
2025-11-02 10:08:56 +01:00

18 lines
413 B
TypeScript

import { useState, useEffect } from "react";
import { debounce } from "lodash";
export const useDebounce = <T>(value: T, delay = 300): T => {
const [debouncedValue, setDebouncedValue] = useState(value);
useEffect(() => {
const handler = debounce(() => setDebouncedValue(value), delay);
handler();
return () => {
handler.cancel();
};
}, [value, delay]);
return debouncedValue;
};