mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2026-10-24 15:07:56 +00:00
Added gateway screen and bloc
This commit is contained in:
@@ -87,8 +87,8 @@ class DevicesCubit extends Cubit<DevicesState> {
|
||||
return const CurtainListView();
|
||||
// case DeviceType.ThreeGang:
|
||||
// return const ThreeGangSwitchesView();
|
||||
case DeviceType.Gateway:
|
||||
return const GateWayView();
|
||||
// case DeviceType.Gateway:
|
||||
// return const GateWayView();
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:syncrow_app/features/devices/bloc/gateway_bloc/gateway_event.dart';
|
||||
import 'package:syncrow_app/features/devices/bloc/gateway_bloc/gateway_state.dart';
|
||||
import 'package:syncrow_app/features/devices/model/device_model.dart';
|
||||
import 'package:syncrow_app/services/api/devices_api.dart';
|
||||
|
||||
class GatewayBloc extends Bloc<GatewayEvent, GatewayState> {
|
||||
GatewayBloc() : super(GatewayInitialState()) {
|
||||
on<GatewayInitial>(_fetchDevices);
|
||||
}
|
||||
|
||||
void _fetchDevices(GatewayInitial event, Emitter<GatewayState> emit) async {
|
||||
emit(GatewayLoadingState());
|
||||
try {
|
||||
List<DeviceModel> devicesList = await DevicesAPI.getDevicesByGatewayId(event.gatewayId);
|
||||
|
||||
emit(UpdateGatewayState(list: devicesList));
|
||||
} catch (e) {
|
||||
emit(ErrorState(message: e.toString()));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
abstract class GatewayEvent extends Equatable {
|
||||
const GatewayEvent();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class GatewayInitial extends GatewayEvent {
|
||||
final String gatewayId;
|
||||
const GatewayInitial({required this.gatewayId});
|
||||
|
||||
@override
|
||||
List<Object> get props => [gatewayId];
|
||||
}
|
||||
|
||||
class GatewayLoading extends GatewayEvent {}
|
||||
|
||||
class GatewayUpdateState extends GatewayEvent {}
|
||||
@@ -0,0 +1,29 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:syncrow_app/features/devices/model/device_model.dart';
|
||||
|
||||
abstract class GatewayState extends Equatable {
|
||||
const GatewayState();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class GatewayInitialState extends GatewayState {}
|
||||
|
||||
class GatewayLoadingState extends GatewayState {}
|
||||
|
||||
class UpdateGatewayState extends GatewayState {
|
||||
final List<DeviceModel> list;
|
||||
const UpdateGatewayState({required this.list});
|
||||
|
||||
@override
|
||||
List<Object> get props => [list];
|
||||
}
|
||||
|
||||
class ErrorState extends GatewayState {
|
||||
final String message;
|
||||
const ErrorState({required this.message});
|
||||
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
}
|
||||
Reference in New Issue
Block a user