You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
810 B
29 lines
810 B
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) {
|
|
if (delayMs === void 0) {
|
|
delayMs = 500;
|
|
}
|
|
|
|
var _useDebouncedState = useDebouncedState(value, delayMs),
|
|
debouncedValue = _useDebouncedState[0],
|
|
setDebouncedValue = _useDebouncedState[1];
|
|
|
|
useDebugValue(debouncedValue);
|
|
useEffect(function () {
|
|
setDebouncedValue(value);
|
|
}, [value, delayMs]);
|
|
return debouncedValue;
|
|
}
|
|
|
|
export default useDebouncedValue; |