fetch method
Fetch or refetch data
Implementation
@override
Future<List<T>> fetch({bool force = false}) async {
// When performing a full refresh (force=true), we reset the pagination state
if (force) {
_nextPageParam = initialPageParam;
_previousPageParam = null; // Reset previous
hasNextPage.value = true;
hasPreviousPage.value = false;
isFetchingNextPage.value = false;
isFetchingPreviousPage.value = false;
// Cancel any ongoing "next/prev page" fetch
_nextPageCancelToken?.cancel('Full refresh triggered');
_nextPageCancelToken = null;
_previousPageCancelToken?.cancel('Full refresh triggered');
_previousPageCancelToken = null;
}
final result = await super.fetch(force: force);
// After the initial page loads, calculate cursors
if (!isDisposed && result.isNotEmpty) {
_updateParams(result);
}
return result;
}