UNPKG

@td-design/rn-hooks

Version:

从ahooks里面抽取的一些在rn项目里可以使用的hooks。提高开发效率

49 lines (45 loc) 1.6 kB
'use strict'; var _tslib = require('../../_virtual/_tslib.js'); var react = require('react'); var index = require('../../useUpdateEffect/index.js'); var useAutoRunPlugin = function (fetchInstance, _a) { var manual = _a.manual, _b = _a.ready, ready = _b === void 0 ? true : _b, _c = _a.defaultParams, defaultParams = _c === void 0 ? [] : _c, _d = _a.refreshDeps, refreshDeps = _d === void 0 ? [] : _d, refreshDepsAction = _a.refreshDepsAction; var hasAutoRun = react.useRef(false); hasAutoRun.current = false; index(function () { if (!manual && ready) { hasAutoRun.current = true; fetchInstance.run.apply(fetchInstance, _tslib.__spreadArray([], _tslib.__read(defaultParams), false)); } }, [ready]); index(function () { if (hasAutoRun.current) return; if (!manual) { hasAutoRun.current = true; if (refreshDepsAction) { refreshDepsAction(); } else { fetchInstance.refresh(); } } }, _tslib.__spreadArray([], _tslib.__read(refreshDeps), false)); return { onBefore: function () { if (!ready) { return { stopNow: true, }; } return {}; }, }; }; useAutoRunPlugin.onInit = function (_a) { var _b = _a.ready, ready = _b === void 0 ? true : _b, _c = _a.manual, manual = _c === void 0 ? true : _c; return { loading: !manual && ready, }; }; exports.useAutoRunPlugin = useAutoRunPlugin;