omnipay-savings-sdk
Version:
Omnipay Savings SDK
26 lines (20 loc) • 617 B
text/typescript
import {useState, useEffect} from 'react';
function useDebounce(value: any, delay: number, includeEmpty: boolean = false) {
const [debouncedValue, setDebouncedValue] = useState(value);
useEffect(() => {
// Set a timeout to update debounced value after delay
const handler = setTimeout(() => {
setDebouncedValue(value);
}, delay);
// Clean up the timeout on unmount or value change
return () => {
clearTimeout(handler);
};
}, [value, delay]);
if (includeEmpty || value !== '') {
return debouncedValue;
} else {
return value;
}
}
export default useDebounce;