infiniteQuery<TPage, TParam> function

BloomInfiniteQuery<TPage, TParam> infiniteQuery<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,
})

Creates a reactive BloomInfiniteQuery configured with pagination parameters.

Convenience factory function for BloomInfiniteQuery.

final feed = infiniteQuery<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> infiniteQuery<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,
}) {
  return BloomInfiniteQuery<TPage, TParam>(
    key: key,
    fetch: fetch,
    initialPageParam: initialPageParam,
    getNextPageParam: getNextPageParam,
    staleTime: staleTime,
    cacheTime: cacheTime,
    enabled: enabled,
    getItems: getItems,
    initialData: initialData,
  );
}