Skip to content

Commit a85d44b

Browse files
committed
fix(content_management): improve breaking news filter chip selection
- Replace boolean values with BreakingNewsFilterStatus enum - Update default selection to BreakingNewsFilterStatus.all - Enhance readability of breaking news filter chip options - Refactor filter update logic for better maintainability
1 parent 5f4acf1 commit a85d44b

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

lib/content_management/widgets/filter_dialog/filter_dialog.dart

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:flutter_news_app_web_dashboard_full_source_code/content_manageme
66
import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/headlines_filter/headlines_filter_bloc.dart';
77
import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/sources_filter/sources_filter_bloc.dart';
88
import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/topics_filter/topics_filter_bloc.dart';
9+
import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/models/breaking_news_filter_status.dart';
910
import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/widgets/filter_dialog/bloc/filter_dialog_bloc.dart';
1011
import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/app_localizations.dart';
1112
import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart';
@@ -130,7 +131,7 @@ class _FilterDialogState extends State<FilterDialog> {
130131
selectedSourceIds: [],
131132
selectedTopicIds: [],
132133
selectedCountryIds: [],
133-
isBreaking: null,
134+
isBreaking: BreakingNewsFilterStatus.all,
134135
selectedSourceTypes: [],
135136
selectedLanguageCodes: [],
136137
selectedHeadquartersCountryIds: [],
@@ -260,34 +261,47 @@ class _FilterDialogState extends State<FilterDialog> {
260261
spacing: AppSpacing.sm,
261262
children: [
262263
ChoiceChip(
263-
label: Text(l10n.breakingNewsFilterAll),
264-
selected: filterDialogState.isBreaking == null,
264+
label: Text(l10n.breakingNewsFilterAll), // 'All' option
265+
selected: filterDialogState.isBreaking ==
266+
BreakingNewsFilterStatus.all,
265267
onSelected: (isSelected) {
266268
if (isSelected) {
267269
context.read<FilterDialogBloc>().add(
268-
const FilterDialogBreakingNewsChanged(null),
270+
const FilterDialogBreakingNewsChanged(
271+
BreakingNewsFilterStatus.all,
272+
),
269273
);
270274
}
271275
},
272276
),
273277
ChoiceChip(
274-
label: Text(l10n.breakingNewsFilterBreakingOnly),
275-
selected: filterDialogState.isBreaking ?? false,
278+
label: Text(
279+
l10n.breakingNewsFilterBreakingOnly,
280+
), // 'Breaking Only'
281+
selected: filterDialogState.isBreaking ==
282+
BreakingNewsFilterStatus.breakingOnly,
276283
onSelected: (isSelected) {
277284
if (isSelected) {
278285
context.read<FilterDialogBloc>().add(
279-
const FilterDialogBreakingNewsChanged(true),
286+
const FilterDialogBreakingNewsChanged(
287+
BreakingNewsFilterStatus.breakingOnly,
288+
),
280289
);
281290
}
282291
},
283292
),
284293
ChoiceChip(
285-
label: Text(l10n.breakingNewsFilterNonBreakingOnly),
286-
selected: filterDialogState.isBreaking == false,
294+
label: Text(
295+
l10n.breakingNewsFilterNonBreakingOnly,
296+
), // 'Non-Breaking'
297+
selected: filterDialogState.isBreaking ==
298+
BreakingNewsFilterStatus.nonBreakingOnly,
287299
onSelected: (isSelected) {
288300
if (isSelected) {
289301
context.read<FilterDialogBloc>().add(
290-
const FilterDialogBreakingNewsChanged(false),
302+
const FilterDialogBreakingNewsChanged(
303+
BreakingNewsFilterStatus.nonBreakingOnly,
304+
),
291305
);
292306
}
293307
},

0 commit comments

Comments
 (0)