fix: use ref.watch in build() and avoid stale snapshot in loadMore catch

This commit is contained in:
2026-04-06 08:26:59 -04:00
parent e08a8906e3
commit f4e39c00eb
+4 -3
View File
@@ -56,7 +56,7 @@ class NewsNotifier extends AsyncNotifier<NewsState> {
@override
Future<NewsState> build() async {
final items = await ref.read(newsApiProvider).getNewsItems(
final items = await ref.watch(newsApiProvider).getNewsItems(
days: 90,
limit: _limit,
offset: 0,
@@ -94,7 +94,8 @@ class NewsNotifier extends AsyncNotifier<NewsState> {
reactions: updatedReactions,
));
} catch (e) {
state = AsyncData(current.copyWith(loadingMore: false));
final recovered = state.value ?? current;
state = AsyncData(recovered.copyWith(loadingMore: false));
rethrow;
}
}
@@ -152,6 +153,6 @@ final feedsProvider =
class FeedsNotifier extends AsyncNotifier<List<BriefingFeed>> {
@override
Future<List<BriefingFeed>> build() async {
return ref.read(newsApiProvider).getFeeds();
return ref.watch(newsApiProvider).getFeeds();
}
}