paginatedQuery<TPage, TParam> function

BloomInfiniteQuery<TPage, TParam> paginatedQuery<TPage, TParam>({
  1. required List key,
  2. required Future<TPage> fetch(
    1. TParam pageParam
    ),
  3. required TParam initialPageParam,
  4. required TParam? getNextPageParam(
    1. TPage lastPage,
    2. List<TPage> allPages
    ),
  5. Duration staleTime = const Duration(minutes: 5),
  6. Duration cacheTime = const Duration(minutes: 30),
  7. bool enabled = true,
  8. List getItems(
    1. TPage page
    )?,
  9. List<TPage>? initialData,
})

Alias for infiniteQuery.

Creates a reactive BloomPaginatedQuery / BloomInfiniteQuery configured with pagination parameters.

final feed = paginatedQuery<List<Post>, int>(
  key: ['posts'],
  initialPageParam: 1,
  fetch: (page) => api.fetchPosts(page: page),
  getNextPageParam: (lastPage, allPages) =>
      lastPage.isNotEmpty ? allPages.length + 1 : null,
);

Implementation

BloomInfiniteQuery<TPage, TParam> paginatedQuery<TPage, TParam>({
  required List<dynamic> key,
  required Future<TPage> Function(TParam pageParam) fetch,
  required TParam initialPageParam,
  required TParam? Function(TPage lastPage, List<TPage> allPages) getNextPageParam,
  Duration staleTime = const Duration(minutes: 5),
  Duration cacheTime = const Duration(minutes: 30),
  bool enabled = true,
  List<dynamic> Function(TPage page)? getItems,
  List<TPage>? initialData,
}) =>
    infiniteQuery<TPage, TParam>(
      key: key,
      fetch: fetch,
      initialPageParam: initialPageParam,
      getNextPageParam: getNextPageParam,
      staleTime: staleTime,
      cacheTime: cacheTime,
      enabled: enabled,
      getItems: getItems,
      initialData: initialData,
    );