Skip to content

Commit 3a0a193

Browse files
committed
fix(content_management): improve countries filter and pagination
- Enhance country filter to only apply when search term is not empty - Refine pagination logic for country list retrieval - Simplify response handling in Future.wait
1 parent 01df3d4 commit 3a0a193

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

lib/content_management/bloc/edit_headline/edit_headline_bloc.dart

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,7 @@ class EditHeadlineBloc extends Bloc<EditHeadlineEvent, EditHeadlineState> {
5656
) async {
5757
emit(state.copyWith(status: EditHeadlineStatus.loading));
5858
try {
59-
final [headlineResponse, sourcesResponse, topicsResponse] =
60-
await Future.wait([
59+
final responses = await Future.wait([
6160
_headlinesRepository.read(id: _headlineId),
6261
_sourcesRepository.readAll(
6362
sort: [const SortOption('updatedAt', SortOrder.desc)],
@@ -67,13 +66,13 @@ class EditHeadlineBloc extends Bloc<EditHeadlineEvent, EditHeadlineState> {
6766
),
6867
]);
6968

70-
final headline = headlineResponse as Headline;
71-
final sources = (sourcesResponse as PaginatedResponse<Source>).items;
72-
final topics = (topicsResponse as PaginatedResponse<Topic>).items;
69+
final headline = responses[0] as Headline;
70+
final sources = (responses[1] as PaginatedResponse<Source>).items;
71+
final topics = (responses[2] as PaginatedResponse<Topic>).items;
7372

7473
final countriesResponse = await _countriesRepository.readAll(
7574
sort: [const SortOption('name', SortOrder.asc)],
76-
) as PaginatedResponse<Country>;
75+
);
7776

7877
emit(
7978
state.copyWith(
@@ -254,9 +253,10 @@ class EditHeadlineBloc extends Bloc<EditHeadlineEvent, EditHeadlineState> {
254253
emit(state.copyWith(countrySearchTerm: event.searchTerm));
255254
try {
256255
final countriesResponse = await _countriesRepository.readAll(
257-
filter: {'name': event.searchTerm},
256+
filter:
257+
event.searchTerm.isNotEmpty ? {'name': event.searchTerm} : null,
258258
sort: [const SortOption('name', SortOrder.asc)],
259-
) as PaginatedResponse<Country>;
259+
);
260260

261261
emit(
262262
state.copyWith(
@@ -285,10 +285,14 @@ class EditHeadlineBloc extends Bloc<EditHeadlineEvent, EditHeadlineState> {
285285

286286
try {
287287
final countriesResponse = await _countriesRepository.readAll(
288-
cursor: state.countriesCursor,
289-
filter: {'name': state.countrySearchTerm},
288+
pagination: state.countriesCursor != null
289+
? PaginationOptions(cursor: state.countriesCursor)
290+
: null,
291+
filter: state.countrySearchTerm.isNotEmpty
292+
? {'name': state.countrySearchTerm}
293+
: null,
290294
sort: [const SortOption('name', SortOrder.asc)],
291-
) as PaginatedResponse<Country>;
295+
);
292296

293297
emit(
294298
state.copyWith(

0 commit comments

Comments
 (0)