35 lines
1.1 KiB
Dart
35 lines
1.1 KiB
Dart
import 'package:equatable/equatable.dart';
|
|
import 'package:maibu_satabot_v2/features/devices/domain/entities/device_entity.dart';
|
|
|
|
class DevicesState extends Equatable {
|
|
final List<DeviceEntity> devices; // 名下所有设备列表
|
|
final DeviceEntity? selectedDevice; // 当前主界面选中的/操作的设备
|
|
final bool isLoading; // 是否正在加载
|
|
final String? errorMessage; // 错误信息
|
|
|
|
const DevicesState({
|
|
this.devices = const [],
|
|
this.selectedDevice,
|
|
this.isLoading = false,
|
|
this.errorMessage,
|
|
});
|
|
|
|
// 使用 copyWith 方便局部更新状态
|
|
DevicesState copyWith({
|
|
List<DeviceEntity>? devices,
|
|
DeviceEntity? selectedDevice,
|
|
bool? isLoading,
|
|
String? errorMessage,
|
|
}) {
|
|
return DevicesState(
|
|
devices: devices ?? this.devices,
|
|
selectedDevice: selectedDevice ?? this.selectedDevice,
|
|
isLoading: isLoading ?? this.isLoading,
|
|
errorMessage: errorMessage, // 错误信息通常每次更新都要重新赋值或清空
|
|
);
|
|
}
|
|
|
|
@override
|
|
List<Object?> get props => [devices, selectedDevice, isLoading, errorMessage];
|
|
}
|