@modern-kit/react
Version:
25 lines (21 loc) • 751 B
JavaScript
import { useEffect } from 'react';
import { useTimeout } from '../useTimeout/index.mjs';
import { isNumber } from '@modern-kit/utils';
import '../usePreservedCallback/index.mjs';
const getTimeoutOptions = (options) => {
return 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 } = useTimeout(callback, { delay, enabled: false });
useEffect(() => {
if (!enabled) return;
reset();
}, [enabled, reset, ...deps]);
return { set, reset, clear };
}
export { useDependencyTimeout };
//# sourceMappingURL=index.mjs.map