UNPKG

@cranberry-money/shared-utils

Version:

Shared utility functions for Blueberry platform

32 lines 1.38 kB
import type { PaginatedResponse } from '@cranberry-money/shared-types'; /** * Extract the next page number from a paginated API response URL. * Returns undefined if there are no more pages. * * @param nextUrl - The "next" URL from a paginated response, or null if no more pages * @returns The next page number, or undefined if no more pages * * @example * const nextPage = getNextPageFromUrl(response.data.next); * // nextPage = 2 if next URL is "...?page=2" * // nextPage = undefined if next URL is null */ export declare const getNextPageFromUrl: (nextUrl: string | null | undefined) => number | undefined; /** * Generic helper to extract the next page number from any paginated response. * Designed for use with TanStack Query's useInfiniteQuery getNextPageParam. * * @param lastPage - The last page response containing a PaginatedResponse in data * @returns The next page number, or undefined if no more pages * * @example * // Use with TanStack Query's useInfiniteQuery * useInfiniteQuery({ * queryKey: ['items'], * queryFn: ({ pageParam = 1 }) => getItems(apiClient, { page: pageParam }), * getNextPageParam: (lastPage) => getNextPageParam(lastPage.data), * initialPageParam: 1, * }); */ export declare const getNextPageParam: <T>(lastPage: PaginatedResponse<T> | undefined) => number | undefined; //# sourceMappingURL=pagination.d.ts.map