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;
hasNextPage.value = true;
isFetchingNextPage.value = false;
// Cancel any ongoing "next page" fetch
_nextPageCancelToken?.cancel('Full refresh triggered');
_nextPageCancelToken = null;
}
final result = await super.fetch(force: force);
// After the initial page loads, calculate if a second page exists
if (!isDisposed && result.isNotEmpty) {
final nextParam = getNextPageParam(result.last, result);
_nextPageParam = nextParam;
hasNextPage.value = nextParam != null;
}
return result;
}