@@ -6,7 +6,12 @@ import 'package:ht_shared/ht_shared.dart';
6
6
/// {@endtemplate}
7
7
class HeadlineFilter extends Equatable {
8
8
/// {@macro headline_filter}
9
- const HeadlineFilter ({this .categories, this .sources});
9
+ const HeadlineFilter ({
10
+ this .categories,
11
+ this .sources,
12
+ this .selectedSourceCountryIsoCodes,
13
+ this .selectedSourceSourceTypes,
14
+ });
10
15
11
16
/// The list of selected category filters.
12
17
/// Headlines matching *any* of these categories will be included (OR logic).
@@ -16,15 +21,35 @@ class HeadlineFilter extends Equatable {
16
21
/// Headlines matching *any* of these sources will be included (OR logic).
17
22
final List <Source >? sources;
18
23
24
+ /// The set of selected country ISO codes for source filtering.
25
+ final Set <String >? selectedSourceCountryIsoCodes;
26
+
27
+ /// The set of selected source types for source filtering.
28
+ final Set <SourceType >? selectedSourceSourceTypes;
29
+
19
30
@override
20
- List <Object ?> get props => [categories, sources];
31
+ List <Object ?> get props => [
32
+ categories,
33
+ sources,
34
+ selectedSourceCountryIsoCodes,
35
+ selectedSourceSourceTypes,
36
+ ];
21
37
22
38
/// Creates a copy of this [HeadlineFilter] with the given fields
23
39
/// replaced with the new values.
24
- HeadlineFilter copyWith ({List <Category >? categories, List <Source >? sources}) {
40
+ HeadlineFilter copyWith ({
41
+ List <Category >? categories,
42
+ List <Source >? sources,
43
+ Set <String >? selectedSourceCountryIsoCodes,
44
+ Set <SourceType >? selectedSourceSourceTypes,
45
+ }) {
25
46
return HeadlineFilter (
26
47
categories: categories ?? this .categories,
27
48
sources: sources ?? this .sources,
49
+ selectedSourceCountryIsoCodes: selectedSourceCountryIsoCodes ??
50
+ this .selectedSourceCountryIsoCodes,
51
+ selectedSourceSourceTypes:
52
+ selectedSourceSourceTypes ?? this .selectedSourceSourceTypes,
28
53
);
29
54
}
30
55
}
0 commit comments