18 lines
408 B
TypeScript
18 lines
408 B
TypeScript
import * as React from 'react';
|
|
|
|
export const useDebouncedValue = <T>(value: T, delayMs = 200): T => {
|
|
const [debouncedValue, setDebouncedValue] = React.useState(value);
|
|
|
|
React.useEffect(() => {
|
|
const handle = window.setTimeout(() => {
|
|
setDebouncedValue(value);
|
|
}, delayMs);
|
|
|
|
return () => {
|
|
window.clearTimeout(handle);
|
|
};
|
|
}, [value, delayMs]);
|
|
|
|
return debouncedValue;
|
|
};
|