Skip to content

Commit da8242d

Browse files
committed
feat(headlines-feed): add theme data to headlines feed events
- Include ThemeData in HeadlinesFeedFetchRequested, HeadlinesFeedRefreshRequested, HeadlinesFeedFiltersApplied, and HeadlinesFeedFiltersCleared events - Update props list for each event to include the new theme parameter
1 parent 0f612a1 commit da8242d

File tree

1 file changed

+31
-6
lines changed

1 file changed

+31
-6
lines changed

lib/headlines-feed/bloc/headlines_feed_event.dart

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,33 @@ final class HeadlinesFeedFetchRequested extends HeadlinesFeedEvent {
2020
///
2121
/// Optionally includes a [cursor] to fetch the next page. If [cursor] is null,
2222
/// it typically indicates an initial fetch request.
23-
const HeadlinesFeedFetchRequested({this.cursor});
23+
const HeadlinesFeedFetchRequested({required this.theme, this.cursor});
2424

2525
/// The cursor indicating the starting point for the next page of headlines.
2626
/// If null, fetches the first page.
2727
final String? cursor;
2828

29+
/// The current theme data of the application.
30+
final ThemeData theme;
31+
2932
@override
30-
List<Object?> get props => [cursor];
33+
List<Object?> get props => [cursor, theme];
3134
}
3235

3336
/// {@template headlines_feed_refresh_requested}
3437
/// Event triggered when the user requests a manual refresh of the headlines feed
3538
/// (e.g., via pull-to-refresh). This should fetch the first page using the
3639
/// currently active filters.
3740
/// {@endtemplate}
38-
final class HeadlinesFeedRefreshRequested extends HeadlinesFeedEvent {}
41+
final class HeadlinesFeedRefreshRequested extends HeadlinesFeedEvent {
42+
const HeadlinesFeedRefreshRequested({required this.theme});
43+
44+
/// The current theme data of the application.
45+
final ThemeData theme;
46+
47+
@override
48+
List<Object> get props => [theme];
49+
}
3950

4051
/// {@template headlines_feed_filters_applied}
4152
/// Event triggered when a new set of filters, selected by the user,
@@ -45,21 +56,35 @@ final class HeadlinesFeedFiltersApplied extends HeadlinesFeedEvent {
4556
/// {@macro headlines_feed_filters_applied}
4657
///
4758
/// Contains the complete [HeadlineFilter] configuration to be applied.
48-
const HeadlinesFeedFiltersApplied({required this.filter});
59+
const HeadlinesFeedFiltersApplied({
60+
required this.filter,
61+
required this.theme,
62+
});
4963

5064
/// The [HeadlineFilter] containing the selected categories, sources,
5165
/// and/or countries.
5266
final HeadlineFilter filter;
5367

68+
/// The current theme data of the application.
69+
final ThemeData theme;
70+
5471
@override
55-
List<Object?> get props => [filter];
72+
List<Object?> get props => [filter, theme];
5673
}
5774

5875
/// {@template headlines_feed_filters_cleared}
5976
/// Event triggered when the user requests to clear all active filters
6077
/// and view the unfiltered headlines feed.
6178
/// {@endtemplate}
62-
final class HeadlinesFeedFiltersCleared extends HeadlinesFeedEvent {}
79+
final class HeadlinesFeedFiltersCleared extends HeadlinesFeedEvent {
80+
const HeadlinesFeedFiltersCleared({required this.theme});
81+
82+
/// The current theme data of the application.
83+
final ThemeData theme;
84+
85+
@override
86+
List<Object> get props => [theme];
87+
}
6388

6489
/// {@template feed_decorator_dismissed}
6590
/// Event triggered when a user dismisses a feed decorator.

0 commit comments

Comments
 (0)