Files
2026-01-16 01:51:36 +00:00

115 lines
4.1 KiB
JavaScript

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _useMergedState5 = _interopRequireDefault(require("rc-util/lib/hooks/useMergedState"));
var _react = require("react");
var useFetchData = function useFetchData(getData, options) {
var _ref = options || {},
onRequestError = _ref.onRequestError,
effects = _ref.effects,
manual = _ref.manual,
dataSource = _ref.dataSource,
defaultDataSource = _ref.defaultDataSource,
onDataSourceChange = _ref.onDataSourceChange;
var _useMergedState = (0, _useMergedState5.default)(defaultDataSource, {
value: dataSource,
onChange: onDataSourceChange
}),
_useMergedState2 = (0, _slicedToArray2.default)(_useMergedState, 2),
entity = _useMergedState2[0],
setEntity = _useMergedState2[1];
var _useMergedState3 = (0, _useMergedState5.default)(options === null || options === void 0 ? void 0 : options.loading, {
value: options === null || options === void 0 ? void 0 : options.loading,
onChange: options === null || options === void 0 ? void 0 : options.onLoadingChange
}),
_useMergedState4 = (0, _slicedToArray2.default)(_useMergedState3, 2),
loading = _useMergedState4[0],
setLoading = _useMergedState4[1];
var updateDataAndLoading = function updateDataAndLoading(data) {
setEntity(data);
setLoading(false);
};
/** 请求数据 */
var fetchList = /*#__PURE__*/function () {
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
var _ref3, data, success;
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
if (!loading) {
_context.next = 2;
break;
}
return _context.abrupt("return");
case 2:
setLoading(true);
_context.prev = 3;
_context.next = 6;
return getData();
case 6:
_context.t0 = _context.sent;
if (_context.t0) {
_context.next = 9;
break;
}
_context.t0 = {};
case 9:
_ref3 = _context.t0;
data = _ref3.data;
success = _ref3.success;
if (success !== false) {
updateDataAndLoading(data);
}
_context.next = 23;
break;
case 15:
_context.prev = 15;
_context.t1 = _context["catch"](3);
if (!(onRequestError === undefined)) {
_context.next = 21;
break;
}
throw new Error(_context.t1);
case 21:
onRequestError(_context.t1);
case 22:
setLoading(false);
case 23:
_context.prev = 23;
setLoading(false);
return _context.finish(23);
case 26:
case "end":
return _context.stop();
}
}, _callee, null, [[3, 15, 23, 26]]);
}));
return function fetchList() {
return _ref2.apply(this, arguments);
};
}();
(0, _react.useEffect)(function () {
if (manual) {
return;
}
fetchList();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [].concat((0, _toConsumableArray2.default)(effects || []), [manual]));
return {
dataSource: entity,
setDataSource: setEntity,
loading: loading,
reload: function reload() {
return fetchList();
}
};
};
var _default = exports.default = useFetchData;