1import { useState, useEffect } from 'react';
2
3// Custom hook for debounced search
4function useDebounce<T>(value: T, delay: number): T {
5 const [debounced, setDebounced] = useState(value);
6
7 useEffect(() => {
8 const timer = setTimeout(() => {
9 setDebounced(value);
10 }, delay);
11
12 return () => clearTimeout(timer);
13 }, [value, delay]);
14
15 return debounced;
16}
17
18export default useDebounce;