Skip to content

Commit c8523f2

Browse files
committed
refactor(content_management): enhance archived headlines state management
- Replace sealed class with enum for status representation - Expand ArchivedHeadlinesState with additional properties - Implement copyWith method for state immutability - Update props list for Equatable
1 parent deb091e commit c8523f2

File tree

1 file changed

+47
-6
lines changed

1 file changed

+47
-6
lines changed
Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,51 @@
11
part of 'archived_headlines_bloc.dart';
22

3-
sealed class ArchivedHeadlinesState extends Equatable {
4-
const ArchivedHeadlinesState();
5-
6-
@override
7-
List<Object> get props => [];
3+
/// Represents the status of archived content operations.
4+
enum ArchivedHeadlinesStatus {
5+
initial,
6+
loading,
7+
success,
8+
failure,
89
}
910

10-
final class ArchivedHeadlinesInitial extends ArchivedHeadlinesState {}
11+
/// The state for the archived content feature.
12+
class ArchivedHeadlinesState extends Equatable {
13+
const ArchivedHeadlinesState({
14+
this.status = ArchivedHeadlinesStatus.initial,
15+
this.headlines = const [],
16+
this.cursor,
17+
this.hasMore = false,
18+
this.exception,
19+
});
20+
21+
final ArchivedHeadlinesStatus status;
22+
final List<Headline> headlines;
23+
final String? cursor;
24+
final bool hasMore;
25+
final HttpException? exception;
26+
27+
ArchivedHeadlinesState copyWith({
28+
ArchivedHeadlinesStatus? status,
29+
List<Headline>? headlines,
30+
String? cursor,
31+
bool? hasMore,
32+
HttpException? exception,
33+
}) {
34+
return ArchivedHeadlinesState(
35+
status: status ?? this.status,
36+
headlines: headlines ?? this.headlines,
37+
cursor: cursor ?? this.cursor,
38+
hasMore: hasMore ?? this.hasMore,
39+
exception: exception ?? this.exception,
40+
);
41+
}
42+
43+
@override
44+
List<Object?> get props => [
45+
status,
46+
headlines,
47+
cursor,
48+
hasMore,
49+
exception,
50+
];
51+
}

0 commit comments

Comments
 (0)