@@ -3,9 +3,12 @@ import 'dart:async';
3
3
import 'package:bloc/bloc.dart' ;
4
4
import 'package:bloc_concurrency/bloc_concurrency.dart' ;
5
5
import 'package:equatable/equatable.dart' ;
6
+ import 'package:ht_categories_client/ht_categories_client.dart' ;
7
+ import 'package:ht_countries_client/ht_countries_client.dart' ;
6
8
import 'package:ht_headlines_client/ht_headlines_client.dart' ; // Import for Headline and Exceptions
7
9
import 'package:ht_headlines_repository/ht_headlines_repository.dart' ;
8
10
import 'package:ht_main/headlines-feed/models/headline_filter.dart' ;
11
+ import 'package:ht_sources_client/ht_sources_client.dart' ;
9
12
10
13
part 'headlines_feed_event.dart' ;
11
14
part 'headlines_feed_state.dart' ;
@@ -42,23 +45,26 @@ class HeadlinesFeedBloc extends Bloc<HeadlinesFeedEvent, HeadlinesFeedState> {
42
45
) async {
43
46
emit (HeadlinesFeedLoading ());
44
47
try {
48
+ // Use list-based filters from the event
45
49
final response = await _headlinesRepository.getHeadlines (
46
50
limit: _headlinesFetchLimit,
47
- category : event.category, // Pass category directly
48
- source : event.source, // Pass source directly
49
- eventCountry : event.eventCountry, // Pass eventCountry directly
51
+ categories : event.categories,
52
+ sources : event.sources,
53
+ eventCountries : event.eventCountries,
50
54
);
51
55
final newFilter =
52
56
(state is HeadlinesFeedLoaded )
53
57
? (state as HeadlinesFeedLoaded ).filter.copyWith (
54
- category: event.category,
55
- source: event.source,
56
- eventCountry: event.eventCountry,
58
+ // Update copyWith call
59
+ categories: event.categories,
60
+ sources: event.sources,
61
+ eventCountries: event.eventCountries,
57
62
)
58
63
: HeadlineFilter (
59
- category: event.category,
60
- source: event.source,
61
- eventCountry: event.eventCountry,
64
+ // Update constructor call
65
+ categories: event.categories,
66
+ sources: event.sources,
67
+ eventCountries: event.eventCountries,
62
68
);
63
69
emit (
64
70
HeadlinesFeedLoaded (
@@ -89,12 +95,13 @@ class HeadlinesFeedBloc extends Bloc<HeadlinesFeedEvent, HeadlinesFeedState> {
89
95
final currentState = state as HeadlinesFeedLoaded ;
90
96
emit (HeadlinesFeedLoadingSilently ());
91
97
try {
98
+ // Use list-based filters from the current state's filter
92
99
final response = await _headlinesRepository.getHeadlines (
93
100
limit: _headlinesFetchLimit,
94
101
startAfterId: currentState.cursor,
95
- category : currentState.filter.category, // Use existing filter
96
- source : currentState.filter.source, // Use existing filter
97
- eventCountry : currentState.filter.eventCountry, // Use existing filter
102
+ categories : currentState.filter.categories,
103
+ sources : currentState.filter.sources,
104
+ eventCountries : currentState.filter.eventCountries,
98
105
);
99
106
emit (
100
107
HeadlinesFeedLoaded (
@@ -112,19 +119,20 @@ class HeadlinesFeedBloc extends Bloc<HeadlinesFeedEvent, HeadlinesFeedState> {
112
119
} else {
113
120
emit (HeadlinesFeedLoading ());
114
121
try {
122
+ // Use list-based filters from the current state's filter (if loaded)
115
123
final response = await _headlinesRepository.getHeadlines (
116
124
limit: _headlinesFetchLimit,
117
- category :
125
+ categories :
118
126
state is HeadlinesFeedLoaded
119
- ? (state as HeadlinesFeedLoaded ).filter.category
127
+ ? (state as HeadlinesFeedLoaded ).filter.categories
120
128
: null ,
121
- source :
129
+ sources :
122
130
state is HeadlinesFeedLoaded
123
- ? (state as HeadlinesFeedLoaded ).filter.source
131
+ ? (state as HeadlinesFeedLoaded ).filter.sources
124
132
: null ,
125
- eventCountry :
133
+ eventCountries :
126
134
state is HeadlinesFeedLoaded
127
- ? (state as HeadlinesFeedLoaded ).filter.eventCountry
135
+ ? (state as HeadlinesFeedLoaded ).filter.eventCountries
128
136
: null ,
129
137
);
130
138
emit (
@@ -160,19 +168,20 @@ class HeadlinesFeedBloc extends Bloc<HeadlinesFeedEvent, HeadlinesFeedState> {
160
168
) async {
161
169
emit (HeadlinesFeedLoading ());
162
170
try {
171
+ // Use list-based filters from the current state's filter (if loaded)
163
172
final response = await _headlinesRepository.getHeadlines (
164
- limit: 20 ,
165
- category :
173
+ limit: 20 , // Consider using _headlinesFetchLimit here too?
174
+ categories :
166
175
state is HeadlinesFeedLoaded
167
- ? (state as HeadlinesFeedLoaded ).filter.category
176
+ ? (state as HeadlinesFeedLoaded ).filter.categories
168
177
: null ,
169
- source :
178
+ sources :
170
179
state is HeadlinesFeedLoaded
171
- ? (state as HeadlinesFeedLoaded ).filter.source
180
+ ? (state as HeadlinesFeedLoaded ).filter.sources
172
181
: null ,
173
- eventCountry :
182
+ eventCountries :
174
183
state is HeadlinesFeedLoaded
175
- ? (state as HeadlinesFeedLoaded ).filter.eventCountry
184
+ ? (state as HeadlinesFeedLoaded ).filter.eventCountries
176
185
: null ,
177
186
);
178
187
emit (
0 commit comments