opendash
Version:
open.DASH data visualization framework
20 lines • 876 B
JavaScript
import * as React from "react";
export function useDebounce(value, delay) {
// State and setters for debounced value
var _a = React.useState(value), debouncedValue = _a[0], setDebouncedValue = _a[1];
React.useEffect(function () {
// Update debounced value after delay
var handler = setTimeout(function () {
setDebouncedValue(value);
}, delay);
// Cancel the timeout if value changes (also on delay change or unmount)
// This is how we prevent debounced value from updating if value is changed ...
// .. within the delay period. Timeout gets cleared and restarted.
return function () {
clearTimeout(handler);
};
}, [value, delay] // Only re-call effect if value or delay changes
);
return debouncedValue;
}
//# sourceMappingURL=useDebounce.js.map