UNPKG

@razorpay/blade

Version:

The Design System that powers Razorpay

33 lines (28 loc) 962 B
import React__default from 'react'; import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js'; /* eslint-disable consistent-return */ function useInterval(callback, _ref) { var delay = _ref.delay, enable = _ref.enable; var intervalRef = React__default.useRef(null); var savedCallback = React__default.useRef(callback); // keep the callback updated useIsomorphicLayoutEffect(function () { savedCallback.current = callback; }, [callback]); React__default.useEffect(function () { var tick = function tick() { return savedCallback.current(); }; if (enable) { intervalRef.current = window.setInterval(tick, delay); return function () { return window.clearInterval(intervalRef.current); }; } // eslint-disable-next-line @typescript-eslint/no-empty-function return function () {}; }, [delay, enable]); } export { useInterval }; //# sourceMappingURL=useInterval.js.map