Files
openchamber/packages/ui/src/hooks/useDebouncedValue.ts
T

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;
};