UNPKG

ahooks

Version:
60 lines (59 loc) 1.95 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _react = require("react"); var _useUpdateEffect = _interopRequireDefault(require("../../../useUpdateEffect")); // support refreshDeps & ready var useAutoRunPlugin = function useAutoRunPlugin(fetchInstance, _ref) { var manual = _ref.manual, _ref$ready = _ref.ready, ready = _ref$ready === void 0 ? true : _ref$ready, _ref$defaultParams = _ref.defaultParams, defaultParams = _ref$defaultParams === void 0 ? [] : _ref$defaultParams, _ref$refreshDeps = _ref.refreshDeps, refreshDeps = _ref$refreshDeps === void 0 ? [] : _ref$refreshDeps, refreshDepsAction = _ref.refreshDepsAction; var hasAutoRun = (0, _react.useRef)(false); hasAutoRun.current = false; (0, _useUpdateEffect["default"])(function () { if (!manual && ready) { hasAutoRun.current = true; fetchInstance.run.apply(fetchInstance, (0, _toConsumableArray2["default"])(defaultParams)); } }, [ready]); (0, _useUpdateEffect["default"])(function () { if (hasAutoRun.current) { return; } if (!manual) { hasAutoRun.current = true; if (refreshDepsAction) { refreshDepsAction(); } else { fetchInstance.refresh(); } } }, (0, _toConsumableArray2["default"])(refreshDeps)); return { onBefore: function onBefore() { if (!ready) { return { stopNow: true }; } } }; }; useAutoRunPlugin.onInit = function (_ref2) { var _ref2$ready = _ref2.ready, ready = _ref2$ready === void 0 ? true : _ref2$ready, manual = _ref2.manual; return { loading: !manual && ready }; }; var _default = exports["default"] = useAutoRunPlugin;