@gravity-ui/data-source
Version:
A wrapper around data fetching
38 lines (37 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DataLoader = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _react = _interopRequireDefault(require("react"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
var DataLoader = exports.DataLoader = function DataLoader(_ref) {
var status = _ref.status,
error = _ref.error,
errorActionProp = _ref.errorAction,
LoadingView = _ref.LoadingView,
ErrorView = _ref.ErrorView,
loadingViewProps = _ref.loadingViewProps,
errorViewProps = _ref.errorViewProps,
children = _ref.children;
var errorAction = _react.default.useMemo(function () {
return typeof errorActionProp === 'function' ? {
handler: errorActionProp
} : errorActionProp;
}, [errorActionProp]);
if (status === 'loading') {
return /*#__PURE__*/(0, _jsxRuntime.jsx)(LoadingView, (0, _objectSpread2.default)({}, loadingViewProps));
}
if (status === 'error') {
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ErrorView, (0, _objectSpread2.default)({
error: error,
action: errorAction
}, errorViewProps));
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
children: children
});
};
// #sourceMappingURL=DataLoader.js.map