@@ -6,6 +6,7 @@ import 'package:flutter_news_app_web_dashboard_full_source_code/content_manageme
66import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/headlines_filter/headlines_filter_bloc.dart' ;
77import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/bloc/sources_filter/sources_filter_bloc.dart' ;
88import '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' ;
910import 'package:flutter_news_app_web_dashboard_full_source_code/content_management/widgets/filter_dialog/bloc/filter_dialog_bloc.dart' ;
1011import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/app_localizations.dart' ;
1112import '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