@modern-kit/react
Version:
27 lines (22 loc) • 811 B
JavaScript
;
var React = require('react');
var hooksUseTimeout = require('../useTimeout/index.cjs');
var utils = require('@modern-kit/utils');
require('../usePreservedCallback/index.cjs');
const getTimeoutOptions = (options) => {
return utils.isNumber(options) ? { delay: options, enabled: true } : {
delay: options.delay,
enabled: options?.enabled ?? true
};
};
function useDependencyTimeout(callback, options, deps) {
const { delay, enabled } = getTimeoutOptions(options);
const { set, reset, clear } = hooksUseTimeout.useTimeout(callback, { delay, enabled: false });
React.useEffect(() => {
if (!enabled) return;
reset();
}, [enabled, reset, ...deps]);
return { set, reset, clear };
}
exports.useDependencyTimeout = useDependencyTimeout;
//# sourceMappingURL=index.cjs.map