UNPKG

@modern-kit/react

Version:
25 lines (21 loc) 751 B
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