fetchPreviousPage method
Fetch the previous page of data.
Implementation
Future<void> fetchPreviousPage() async {
if (isFetchingPreviousPage.value || !hasPreviousPage.value || isDisposed) {
return;
}
isFetchingPreviousPage.value = true;
update();
_previousPageCancelToken?.cancel('New previous page fetch started');
final token = ZenCancelToken('Fetching previous page');
_previousPageCancelToken = token;
try {
final newPage = await infiniteFetcher(_previousPageParam, token);
if (isDisposed || token.isCancelled) return;
final currentPages = data.value ?? [];
final allPages = [newPage, ...currentPages];
_updateDataAndCache(allPages);
// Calculate params again
_updateParams(allPages);
error.value = null;
} catch (e) {
_handleFetchError(e, token);
} finally {
if (!isDisposed) {
isFetchingPreviousPage.value = false;
if (_previousPageCancelToken == token) {
_previousPageCancelToken = null;
}
update();
}
}
}