useDebounce: Debounces a value (returns debounced value)
useDebouncedCallback: Debounces a function (returns debounced function)
Usage:
const debouncedSearch = useDebouncedCallback((term: string) => {
// This function will only run 300ms after the user stops typing
searchAPI(term);
}, 300);
// Use in event handler
<Input onChange={(e) => debouncedSearch(e.target.value)} />