"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _raf = _interopRequireDefault(require("rc-util/lib/raf")); var _default = function _default() { var nextFrameRef = React.useRef(null); function cancelNextFrame() { _raf.default.cancel(nextFrameRef.current); } function nextFrame(callback) { var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2; cancelNextFrame(); var nextFrameId = (0, _raf.default)(function () { if (delay <= 1) { callback({ isCanceled: function isCanceled() { return nextFrameId !== nextFrameRef.current; } }); } else { nextFrame(callback, delay - 1); } }); nextFrameRef.current = nextFrameId; } React.useEffect(function () { return function () { cancelNextFrame(); }; }, []); return [nextFrame, cancelNextFrame]; }; exports.default = _default;