UNPKG

@gravity-ui/data-source

Version:
52 lines (51 loc) 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DataInfiniteLoader = 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 DataInfiniteLoader = exports.DataInfiniteLoader = function DataInfiniteLoader(_ref) { var status = _ref.status, error = _ref.error, errorActionProp = _ref.errorAction, hasNextPage = _ref.hasNextPage, fetchNextPage = _ref.fetchNextPage, isFetchingNextPage = _ref.isFetchingNextPage, LoadingView = _ref.LoadingView, ErrorView = _ref.ErrorView, MoreView = _ref.MoreView, loadingViewProps = _ref.loadingViewProps, errorViewProps = _ref.errorViewProps, moreViewProps = _ref.moreViewProps, children = _ref.children; var errorAction = _react.default.useMemo(function () { return typeof errorActionProp === 'function' ? { handler: errorActionProp } : errorActionProp; }, [errorActionProp]); var renderContent = function renderContent() { 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)); } if (status === 'success' && hasNextPage) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(MoreView, (0, _objectSpread2.default)({ isLoading: isFetchingNextPage, onClick: fetchNextPage }, moreViewProps)); } return null; }; return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, { children: [status === 'success' ? children : null, renderContent()] }); }; // #sourceMappingURL=DataInfiniteLoader.js.map