UNPKG

@tanstack/query-core

Version:

The framework agnostic core that powers TanStack Query

74 lines (73 loc) 2.36 kB
import "./chunk-PXG64RU4.js"; // src/infiniteQueryObserver.ts import { QueryObserver } from "./queryObserver.js"; import { hasNextPage, hasPreviousPage, infiniteQueryBehavior } from "./infiniteQueryBehavior.js"; var InfiniteQueryObserver = class extends QueryObserver { constructor(client, options) { super(client, options); } bindMethods() { super.bindMethods(); this.fetchNextPage = this.fetchNextPage.bind(this); this.fetchPreviousPage = this.fetchPreviousPage.bind(this); } setOptions(options) { super.setOptions({ ...options, behavior: infiniteQueryBehavior() }); } getOptimisticResult(options) { options.behavior = infiniteQueryBehavior(); return super.getOptimisticResult(options); } fetchNextPage(options) { return this.fetch({ ...options, meta: { fetchMore: { direction: "forward" } } }); } fetchPreviousPage(options) { return this.fetch({ ...options, meta: { fetchMore: { direction: "backward" } } }); } createResult(query, options) { var _a, _b; const { state } = query; const parentResult = super.createResult(query, options); const { isFetching, isRefetching, isError, isRefetchError } = parentResult; const fetchDirection = (_b = (_a = state.fetchMeta) == null ? void 0 : _a.fetchMore) == null ? void 0 : _b.direction; const isFetchNextPageError = isError && fetchDirection === "forward"; const isFetchingNextPage = isFetching && fetchDirection === "forward"; const isFetchPreviousPageError = isError && fetchDirection === "backward"; const isFetchingPreviousPage = isFetching && fetchDirection === "backward"; const result = { ...parentResult, fetchNextPage: this.fetchNextPage, fetchPreviousPage: this.fetchPreviousPage, hasNextPage: hasNextPage(options, state.data), hasPreviousPage: hasPreviousPage(options, state.data), isFetchNextPageError, isFetchingNextPage, isFetchPreviousPageError, isFetchingPreviousPage, isRefetchError: isRefetchError && !isFetchNextPageError && !isFetchPreviousPageError, isRefetching: isRefetching && !isFetchingNextPage && !isFetchingPreviousPage }; return result; } }; export { InfiniteQueryObserver }; //# sourceMappingURL=infiniteQueryObserver.js.map