Skip to content

Commit de0bbba

Browse files
committed
feat: introduces the EditHeadlineStatusChanged event, which is necessary for the UI to communicate status changes to the EditHeadlineBloc. I am also taking this opportunity to modernize the event file by converting the base class to sealed and making the event classes final for better type safety and consistency.
1 parent 75bb6de commit de0bbba

File tree

1 file changed

+23
-14
lines changed

1 file changed

+23
-14
lines changed

lib/content_management/bloc/edit_headline/edit_headline_event.dart

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,77 @@
11
part of 'edit_headline_bloc.dart';
22

33
/// Base class for all events related to the [EditHeadlineBloc].
4-
abstract class EditHeadlineEvent extends Equatable {
4+
sealed class EditHeadlineEvent extends Equatable {
55
const EditHeadlineEvent();
66

77
@override
88
List<Object?> get props => [];
99
}
1010

1111
/// Event to signal that the headline data should be loaded.
12-
class EditHeadlineLoaded extends EditHeadlineEvent {
12+
final class EditHeadlineLoaded extends EditHeadlineEvent {
1313
const EditHeadlineLoaded();
1414
}
1515

1616
/// Event for when the headline's title is changed.
17-
class EditHeadlineTitleChanged extends EditHeadlineEvent {
17+
final class EditHeadlineTitleChanged extends EditHeadlineEvent {
1818
const EditHeadlineTitleChanged(this.title);
1919
final String title;
2020
@override
21-
List<Object> get props => [title];
21+
List<Object?> get props => [title];
2222
}
2323

2424
/// Event for when the headline's description is changed.
25-
class EditHeadlineDescriptionChanged extends EditHeadlineEvent {
25+
final class EditHeadlineDescriptionChanged extends EditHeadlineEvent {
2626
const EditHeadlineDescriptionChanged(this.description);
2727
final String description;
2828
@override
29-
List<Object> get props => [description];
29+
List<Object?> get props => [description];
3030
}
3131

3232
/// Event for when the headline's URL is changed.
33-
class EditHeadlineUrlChanged extends EditHeadlineEvent {
33+
final class EditHeadlineUrlChanged extends EditHeadlineEvent {
3434
const EditHeadlineUrlChanged(this.url);
3535
final String url;
3636
@override
37-
List<Object> get props => [url];
37+
List<Object?> get props => [url];
3838
}
3939

4040
/// Event for when the headline's image URL is changed.
41-
class EditHeadlineImageUrlChanged extends EditHeadlineEvent {
41+
final class EditHeadlineImageUrlChanged extends EditHeadlineEvent {
4242
const EditHeadlineImageUrlChanged(this.imageUrl);
4343
final String imageUrl;
4444
@override
45-
List<Object> get props => [imageUrl];
45+
List<Object?> get props => [imageUrl];
4646
}
4747

4848
/// Event for when the headline's source is changed.
49-
class EditHeadlineSourceChanged extends EditHeadlineEvent {
49+
final class EditHeadlineSourceChanged extends EditHeadlineEvent {
5050
const EditHeadlineSourceChanged(this.source);
5151
final Source? source;
5252
@override
5353
List<Object?> get props => [source];
5454
}
5555

5656
/// Event for when the headline's category is changed.
57-
class EditHeadlineCategoryChanged extends EditHeadlineEvent {
57+
final class EditHeadlineCategoryChanged extends EditHeadlineEvent {
5858
const EditHeadlineCategoryChanged(this.category);
5959
final Category? category;
6060
@override
6161
List<Object?> get props => [category];
6262
}
6363

64+
/// Event for when the headline's status is changed.
65+
final class EditHeadlineStatusChanged extends EditHeadlineEvent {
66+
const EditHeadlineStatusChanged(this.status);
67+
68+
final ContentStatus status;
69+
70+
@override
71+
List<Object?> get props => [status];
72+
}
73+
6474
/// Event to signal that the form should be submitted.
65-
class EditHeadlineSubmitted extends EditHeadlineEvent {
75+
final class EditHeadlineSubmitted extends EditHeadlineEvent {
6676
const EditHeadlineSubmitted();
6777
}
68-

0 commit comments

Comments
 (0)