@gravity-ui/data-source
Version:
A wrapper around data fetching
43 lines (42 loc) • 2.35 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useInfiniteQueryData = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = require("react");
var _reactQuery = require("@tanstack/react-query");
var _useRefetchInterval2 = require("../../hooks/useRefetchInterval");
var _normalizeStatus = require("../../utils/normalizeStatus");
var _utils = require("./utils");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
var _excluded = ["queryFn", "refetchInterval"];
var useInfiniteQueryDataOptions = function useInfiniteQueryDataOptions(composedOptions) {
var queryFnOption = composedOptions.queryFn,
refetchIntervalOption = composedOptions.refetchInterval,
restOptions = (0, _objectWithoutProperties2.default)(composedOptions, _excluded);
var _useRefetchInterval = (0, _useRefetchInterval2.useRefetchInterval)(refetchIntervalOption, queryFnOption),
queryFn = _useRefetchInterval.queryFn,
refetchInterval = _useRefetchInterval.refetchInterval;
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, restOptions), {}, {
queryFn: queryFn,
refetchInterval: refetchInterval
});
};
var useInfiniteQueryData = exports.useInfiniteQueryData = function useInfiniteQueryData(context, dataSource, params, options) {
var extendedOptions = (0, _utils.composeOptions)(context, dataSource, params, options);
var composedOptions = useInfiniteQueryDataOptions(extendedOptions);
var state = (0, _reactQuery.useInfiniteQuery)(composedOptions);
var transformedData = (0, _react.useMemo)(function () {
var _state$data$pages$fla, _state$data;
return (_state$data$pages$fla = (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.pages.flat(1)) !== null && _state$data$pages$fla !== void 0 ? _state$data$pages$fla : [];
}, [state.data]);
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
status: (0, _normalizeStatus.normalizeStatus)(state.status, state.fetchStatus),
data: transformedData,
originalStatus: state.status,
originalData: state.data
});
};
// #sourceMappingURL=hooks.js.map