UNPKG

@eleven-am/xquery

Version:

XQuery is a sophisticated TypeScript wrapper for TanStack React Query, designed to enhance developer productivity with OpenAPI-generated clients. It enables developers to build and execute queries using fully type-safe factories instead of managing query

23 lines 1.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useInfiniteScroll = useInfiniteScroll; const react_query_1 = require("@tanstack/react-query"); const react_1 = require("react"); const useIsVisible_1 = require("./useIsVisible"); function useInfiniteScroll({ options, queryClientGetter, ...rest }) { const { initialData } = rest; const { data, fetchNextPage, isFetchingNextPage, hasNextPage } = (0, react_query_1.useInfiniteQuery)(rest, queryClientGetter()); const performFetch = (0, react_1.useCallback)(() => !isFetchingNextPage && hasNextPage && fetchNextPage(), [fetchNextPage, hasNextPage, isFetchingNextPage]); const [ref] = (0, useIsVisible_1.useIsVisible)({ action: performFetch, options, }); const items = (0, react_1.useMemo)(() => { if (!data) { return initialData?.pages[0]?.results ?? []; } return data.pages.flatMap((page) => page.results); }, [data, initialData?.pages]); return [items, ref]; } //# sourceMappingURL=useInfiniteScroll.js.map