59 lines
1.3 KiB
Dart
59 lines
1.3 KiB
Dart
import 'package:equatable/equatable.dart';
|
|
import 'package:maibu_satabot_v2/features/v2/my/domain/entities/my_entities.dart';
|
|
|
|
/// 我的页面状态基类
|
|
abstract class MyState extends Equatable {
|
|
const MyState();
|
|
|
|
@override
|
|
List<Object?> get props => [];
|
|
}
|
|
|
|
/// 初始状态
|
|
class MyInitial extends MyState {}
|
|
|
|
/// 加载中状态
|
|
class MyLoading extends MyState {}
|
|
|
|
/// 加载成功状态
|
|
class MyLoaded extends MyState {
|
|
const MyLoaded({
|
|
required this.userProfile,
|
|
required this.menuItems,
|
|
this.isNightMode = false,
|
|
this.cacheSize = '1.26 GB',
|
|
});
|
|
|
|
final UserProfileEntity userProfile;
|
|
final List<MenuItemEntity> menuItems;
|
|
final bool isNightMode;
|
|
final String cacheSize;
|
|
|
|
@override
|
|
List<Object?> get props => [userProfile, menuItems, isNightMode, cacheSize];
|
|
|
|
MyLoaded copyWith({
|
|
UserProfileEntity? userProfile,
|
|
List<MenuItemEntity>? menuItems,
|
|
bool? isNightMode,
|
|
String? cacheSize,
|
|
}) {
|
|
return MyLoaded(
|
|
userProfile: userProfile ?? this.userProfile,
|
|
menuItems: menuItems ?? this.menuItems,
|
|
isNightMode: isNightMode ?? this.isNightMode,
|
|
cacheSize: cacheSize ?? this.cacheSize,
|
|
);
|
|
}
|
|
}
|
|
|
|
/// 加载失败状态
|
|
class MyError extends MyState {
|
|
const MyError(this.message);
|
|
|
|
final String message;
|
|
|
|
@override
|
|
List<Object?> get props => [message];
|
|
}
|