Skip to content

Commit 73013f5

Browse files
committed
fix
1 parent 21e54cc commit 73013f5

File tree

1 file changed

+92
-88
lines changed

1 file changed

+92
-88
lines changed

lib/headlines-feed/view/headlines_filter_page.dart

Lines changed: 92 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
//
12
// ignore_for_file: lines_longer_than_80_chars
23

34
import 'package:flutter/material.dart';
@@ -101,96 +102,99 @@ class _HeadlinesFilterPageState extends State<HeadlinesFilterPage> {
101102
Widget build(BuildContext context) {
102103
final l10n = context.l10n;
103104

104-
return Scaffold(
105-
appBar: AppBar(
106-
leading: IconButton(
107-
icon: const Icon(Icons.close),
108-
tooltip: MaterialLocalizations.of(context).closeButtonTooltip,
109-
onPressed: () => context.pop(), // Discard changes
110-
),
111-
title: Text(l10n.headlinesFeedFilterTitle),
112-
actions: [
113-
// Clear Button
114-
IconButton(
115-
icon: const Icon(Icons.clear_all),
116-
tooltip: l10n.headlinesFeedFilterResetButton,
117-
onPressed: () {
118-
// Dispatch clear event immediately and pop
119-
context.read<HeadlinesFeedBloc>().add(
120-
HeadlinesFeedFiltersCleared(),
121-
);
122-
context.pop();
123-
},
105+
return BlocProvider.value(
106+
value: widget.headlinesFeedBloc,
107+
child: Scaffold(
108+
appBar: AppBar(
109+
leading: IconButton(
110+
icon: const Icon(Icons.close),
111+
tooltip: MaterialLocalizations.of(context).closeButtonTooltip,
112+
onPressed: () => context.pop(), // Discard changes
124113
),
125-
// Apply Button
126-
IconButton(
127-
icon: const Icon(Icons.check),
128-
tooltip: l10n.headlinesFeedFilterApplyButton,
129-
onPressed: () {
130-
// Apply the temporary filters to the BLoC
131-
context.read<HeadlinesFeedBloc>().add(
132-
HeadlinesFeedFiltersApplied(
133-
filter: HeadlineFilter(
134-
categories:
135-
_tempSelectedCategories.isNotEmpty
136-
? _tempSelectedCategories
137-
: null,
138-
sources:
139-
_tempSelectedSources.isNotEmpty
140-
? _tempSelectedSources
141-
: null,
142-
eventCountries:
143-
_tempSelectedCountries.isNotEmpty
144-
? _tempSelectedCountries
145-
: null,
114+
title: Text(l10n.headlinesFeedFilterTitle),
115+
actions: [
116+
// Clear Button
117+
IconButton(
118+
icon: const Icon(Icons.clear_all),
119+
tooltip: l10n.headlinesFeedFilterResetButton,
120+
onPressed: () {
121+
// Dispatch clear event immediately and pop
122+
context.read<HeadlinesFeedBloc>().add(
123+
HeadlinesFeedFiltersCleared(),
124+
);
125+
context.pop();
126+
},
127+
),
128+
// Apply Button
129+
IconButton(
130+
icon: const Icon(Icons.check),
131+
tooltip: l10n.headlinesFeedFilterApplyButton,
132+
onPressed: () {
133+
// Apply the temporary filters to the BLoC
134+
context.read<HeadlinesFeedBloc>().add(
135+
HeadlinesFeedFiltersApplied(
136+
filter: HeadlineFilter(
137+
categories:
138+
_tempSelectedCategories.isNotEmpty
139+
? _tempSelectedCategories
140+
: null,
141+
sources:
142+
_tempSelectedSources.isNotEmpty
143+
? _tempSelectedSources
144+
: null,
145+
eventCountries:
146+
_tempSelectedCountries.isNotEmpty
147+
? _tempSelectedCountries
148+
: null,
149+
),
146150
),
147-
),
148-
);
149-
context.pop(); // Close the filter page
150-
},
151-
),
152-
],
153-
),
154-
body: ListView(
155-
padding: const EdgeInsets.symmetric(vertical: AppSpacing.md),
156-
children: [
157-
_buildFilterTile(
158-
context: context,
159-
title: l10n.headlinesFeedFilterCategoryLabel,
160-
selectedCount: _tempSelectedCategories.length,
161-
routeName: Routes.feedFilterCategoriesName,
162-
currentSelection: _tempSelectedCategories,
163-
onResult: (result) {
164-
if (result is List<Category>) {
165-
setState(() => _tempSelectedCategories = result);
166-
}
167-
},
168-
),
169-
_buildFilterTile(
170-
context: context,
171-
title: l10n.headlinesFeedFilterSourceLabel,
172-
selectedCount: _tempSelectedSources.length,
173-
routeName: Routes.feedFilterSourcesName,
174-
currentSelection: _tempSelectedSources,
175-
onResult: (result) {
176-
if (result is List<Source>) {
177-
setState(() => _tempSelectedSources = result);
178-
}
179-
},
180-
),
181-
_buildFilterTile(
182-
context: context,
183-
title: l10n.headlinesFeedFilterEventCountryLabel,
184-
selectedCount: _tempSelectedCountries.length,
185-
routeName: Routes.feedFilterCountriesName,
186-
currentSelection: _tempSelectedCountries,
187-
onResult: (result) {
188-
if (result is List<Country>) {
189-
setState(() => _tempSelectedCountries = result);
190-
}
191-
},
192-
),
193-
],
151+
);
152+
context.pop(); // Close the filter page
153+
},
154+
),
155+
],
156+
),
157+
body: ListView(
158+
padding: const EdgeInsets.symmetric(vertical: AppSpacing.md),
159+
children: [
160+
_buildFilterTile(
161+
context: context,
162+
title: l10n.headlinesFeedFilterCategoryLabel,
163+
selectedCount: _tempSelectedCategories.length,
164+
routeName: Routes.feedFilterCategoriesName,
165+
currentSelection: _tempSelectedCategories,
166+
onResult: (result) {
167+
if (result is List<Category>) {
168+
setState(() => _tempSelectedCategories = result);
169+
}
170+
},
171+
),
172+
_buildFilterTile(
173+
context: context,
174+
title: l10n.headlinesFeedFilterSourceLabel,
175+
selectedCount: _tempSelectedSources.length,
176+
routeName: Routes.feedFilterSourcesName,
177+
currentSelection: _tempSelectedSources,
178+
onResult: (result) {
179+
if (result is List<Source>) {
180+
setState(() => _tempSelectedSources = result);
181+
}
182+
},
183+
),
184+
_buildFilterTile(
185+
context: context,
186+
title: l10n.headlinesFeedFilterEventCountryLabel,
187+
selectedCount: _tempSelectedCountries.length,
188+
routeName: Routes.feedFilterCountriesName,
189+
currentSelection: _tempSelectedCountries,
190+
onResult: (result) {
191+
if (result is List<Country>) {
192+
setState(() => _tempSelectedCountries = result);
193+
}
194+
},
195+
),
196+
],
197+
),
194198
),
195199
);
196200
}

0 commit comments

Comments
 (0)