use-debounce.tsimport * as React from "react";
export default function useDebounce<T>(value: T, delay = 500) {
const [debouncedValue, setDebouncedValue] = React.useState(value);
React.useEffect(() => {
const timer = setTimeout(() => {
setDebouncedValue(value);
}, delay);
return () => {
clearTimeout(timer);
};
}, [delay, value]);
return debouncedValue;
}