@@ -4,9 +4,12 @@ import 'package:flutter_bloc/flutter_bloc.dart';
44import 'package:freezed_annotation/freezed_annotation.dart' ;
55import 'package:get/get.dart' ;
66
7+ import '../../../data/constants/strings.dart' ;
78import '../../../domain/models/feed.dart' ;
89import '../../../domain/models/grouped_feed.dart' ;
10+ import '../../../domain/models/status.dart' ;
911import '../../../domain/repositories/cp_repository.dart' ;
12+ import '../../../utils/snackbar.dart' ;
1013
1114part 'feed_bloc.freezed.dart' ;
1215part 'feed_state.dart' ;
@@ -23,15 +26,21 @@ class FeedBloc extends Bloc<FeedEvent, FeedState> {
2326 if (event.fetchNext) {
2427 emit (state.copyWith (isFetchingNext: true ));
2528 } else {
26- emit (state.copyWith (isLoading : true ));
29+ emit (state.copyWith (status : const Status . loading () ));
2730 }
2831
29- feeds = await CPRepository .getFeed (
30- before: event.fetchNext
31- ? groupedFeeds.last.submissions? .last.createdAt
32- : null ,
33- ) ??
34- < Feed > [];
32+ try {
33+ feeds = await CPRepository .getFeed (
34+ before: event.fetchNext
35+ ? groupedFeeds.last.submissions? .last.createdAt
36+ : null ,
37+ ) ??
38+ < Feed > [];
39+ } on Exception catch (_) {
40+ showSnackBar (message: AppStrings .genericError);
41+ emit (state.copyWith (status: const Status .error (AppStrings .genericError)));
42+ return ;
43+ }
3544
3645 if (feeds.isEmpty) _allLoaded = true ;
3746
@@ -56,7 +65,7 @@ class FeedBloc extends Bloc<FeedEvent, FeedState> {
5665
5766 emit (
5867 state.copyWith (
59- isLoading : false ,
68+ status : const Status () ,
6069 feeds: [...groupedFeeds],
6170 isFetchingNext: false ,
6271 allLoaded: _allLoaded,
0 commit comments