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 @override
Future<NewsState> build() async { Future<NewsState> build() async {
final items = await ref.read(newsApiProvider).getNewsItems( final items = await ref.watch(newsApiProvider).getNewsItems(
days: 90, days: 90,
limit: _limit, limit: _limit,
offset: 0, offset: 0,
@@ -94,7 +94,8 @@ class NewsNotifier extends AsyncNotifier<NewsState> {
reactions: updatedReactions, reactions: updatedReactions,
)); ));
} catch (e) { } catch (e) {
state = AsyncData(current.copyWith(loadingMore: false)); final recovered = state.value ?? current;
state = AsyncData(recovered.copyWith(loadingMore: false));
rethrow; rethrow;
} }
} }
@@ -152,6 +153,6 @@ final feedsProvider =
class FeedsNotifier extends AsyncNotifier<List<BriefingFeed>> { class FeedsNotifier extends AsyncNotifier<List<BriefingFeed>> {
@override @override
Future<List<BriefingFeed>> build() async { Future<List<BriefingFeed>> build() async {
return ref.read(newsApiProvider).getFeeds(); return ref.watch(newsApiProvider).getFeeds();
} }
} }