paginatedQuery<TPage, TParam> function
BloomInfiniteQuery<TPage, TParam>
paginatedQuery<TPage, TParam>({
- required List key,
- required Future<
TPage> fetch(- TParam pageParam
- required TParam initialPageParam,
- required TParam? getNextPageParam(
- TPage lastPage,
- List<
TPage> allPages
- Duration staleTime = const Duration(minutes: 5),
- Duration cacheTime = const Duration(minutes: 30),
- bool enabled = true,
- List getItems(
- TPage page
- 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,
);