@minimaltech/ra-infra
Version:
Minimal Technology ReactJS Infrastructure
22 lines • 857 B
JavaScript
import { App } from '../../common/constants';
import { isBrowser } from '../../utilities/boolean.utility';
import React from 'react';
export const useDebounce = (params) => {
const { value, delay, disabled } = params;
//---------------------------------------------------------------------------
const [debouncedValue, setDebouncedValue] = React.useState(value);
//---------------------------------------------------------------------------
React.useEffect(() => {
if (!isBrowser() || disabled) {
return;
}
const timer = setTimeout(() => {
setDebouncedValue(value);
}, delay || App.DEFAULT_DEBOUNCE_TIME);
return () => {
clearTimeout(timer);
};
}, [value, delay, disabled]);
return { debouncedValue };
};
//# sourceMappingURL=use-debounce.js.map