@restart/hooks
Version:
A set of utility and general-purpose React hooks.
21 lines (20 loc) • 680 B
JavaScript
import { useEffect, useDebugValue } from 'react';
import useDebouncedState from './useDebouncedState';
/**
* Debounce a value change by a specified number of milliseconds. Useful
* when you want need to trigger a change based on a value change, but want
* to defer changes until the changes reach some level of infrequency.
*
* @param value
* @param delayMs
* @returns
*/
function useDebouncedValue(value, delayMs = 500) {
const [debouncedValue, setDebouncedValue] = useDebouncedState(value, delayMs);
useDebugValue(debouncedValue);
useEffect(() => {
setDebouncedValue(value);
}, [value, delayMs]);
return debouncedValue;
}
export default useDebouncedValue;