UNPKG

@orca-fe/hooks

Version:

React Hooks Collections

36 lines (35 loc) 940 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useInterval; var _react = require("react"); var _ahooks = require("ahooks"); function useInterval(callback, interval) { var callbackMemorizedFn = (0, _ahooks.useMemoizedFn)(callback); var ref = (0, _react.useRef)(); var start = (0, _ahooks.useMemoizedFn)(function () { if (!ref.current && interval != null && interval > 0) { ref.current = window.setInterval(callbackMemorizedFn, interval); } }); var stop = (0, _ahooks.useMemoizedFn)(function () { if (ref.current) { window.clearInterval(ref.current); ref.current = undefined; } }); var reset = (0, _ahooks.useMemoizedFn)(function () { stop(); start(); }); (0, _react.useEffect)(reset, [interval]); (0, _react.useEffect)(function () { return stop; }, []); return { start: start, reset: reset, stop: stop }; }