|
1 | 1 | part of 'sources_filter_bloc.dart';
|
2 | 2 |
|
3 |
| -/// {@template sources_filter_event} |
4 |
| -/// Base class for events related to fetching and managing source filters. |
5 |
| -/// {@endtemplate} |
6 |
| -sealed class SourcesFilterEvent extends Equatable { |
7 |
| - /// {@macro sources_filter_event} |
| 3 | +abstract class SourcesFilterEvent extends Equatable { |
8 | 4 | const SourcesFilterEvent();
|
9 | 5 |
|
10 | 6 | @override
|
11 |
| - List<Object> get props => []; |
| 7 | + List<Object?> get props => []; |
12 | 8 | }
|
13 | 9 |
|
14 |
| -/// {@template sources_filter_requested} |
15 |
| -/// Event triggered to request the initial list of sources. |
16 |
| -/// {@endtemplate} |
17 |
| -final class SourcesFilterRequested extends SourcesFilterEvent {} |
| 10 | +class LoadSourceFilterData extends SourcesFilterEvent { |
| 11 | + const LoadSourceFilterData({this.initialSelectedSources = const []}); |
18 | 12 |
|
19 |
| -/// {@template sources_filter_load_more_requested} |
20 |
| -/// Event triggered to request the next page of sources for pagination. |
21 |
| -/// {@endtemplate} |
22 |
| -final class SourcesFilterLoadMoreRequested extends SourcesFilterEvent {} |
| 13 | + final List<Source> initialSelectedSources; |
| 14 | + |
| 15 | + @override |
| 16 | + List<Object?> get props => [initialSelectedSources]; |
| 17 | +} |
| 18 | + |
| 19 | +class CountryCapsuleToggled extends SourcesFilterEvent { |
| 20 | + const CountryCapsuleToggled(this.countryIsoCode); |
| 21 | + |
| 22 | + /// If countryIsoCode is empty, it implies "All Countries". |
| 23 | + final String countryIsoCode; |
| 24 | + |
| 25 | + @override |
| 26 | + List<Object> get props => [countryIsoCode]; |
| 27 | +} |
| 28 | + |
| 29 | +class AllSourceTypesCapsuleToggled extends SourcesFilterEvent { |
| 30 | + const AllSourceTypesCapsuleToggled(); |
| 31 | +} |
| 32 | + |
| 33 | +class SourceTypeCapsuleToggled extends SourcesFilterEvent { |
| 34 | + const SourceTypeCapsuleToggled(this.sourceType); |
| 35 | + |
| 36 | + final SourceType sourceType; |
| 37 | + |
| 38 | + @override |
| 39 | + List<Object> get props => [sourceType]; |
| 40 | +} |
| 41 | + |
| 42 | +class SourceCheckboxToggled extends SourcesFilterEvent { |
| 43 | + const SourceCheckboxToggled(this.sourceId, this.isSelected); |
| 44 | + |
| 45 | + final String sourceId; |
| 46 | + final bool isSelected; |
| 47 | + |
| 48 | + @override |
| 49 | + List<Object> get props => [sourceId, isSelected]; |
| 50 | +} |
| 51 | + |
| 52 | +class ClearSourceFiltersRequested extends SourcesFilterEvent { |
| 53 | + const ClearSourceFiltersRequested(); |
| 54 | +} |
| 55 | + |
| 56 | +// Internal event - not part of public API, hence leading underscore |
| 57 | +class _FetchFilteredSourcesRequested extends SourcesFilterEvent { |
| 58 | + const _FetchFilteredSourcesRequested(); |
| 59 | +} |
0 commit comments