115 lines
4.1 KiB
JavaScript
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; |