mirror of
https://github.com/SyncrowIOT/syncrow-app.git
synced 2026-10-24 20:17:55 +00:00
Added create a unit screen, and implemented otp screen bloc and view
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:syncrow_app/features/menu/bloc/create_unit_bloc/create_unit_event.dart';
|
||||
import 'package:syncrow_app/features/menu/bloc/create_unit_bloc/create_unit_state.dart';
|
||||
import 'package:syncrow_app/utils/helpers/snack_bar.dart';
|
||||
|
||||
class CreateUnitBloc extends Bloc<CreateUnitEvent, CreateUnitState> {
|
||||
List<String> rooms = [];
|
||||
String unitName = '';
|
||||
String locationName = '';
|
||||
|
||||
CreateUnitBloc() : super(InitialState()) {
|
||||
on<CreateRoomEvent>(_createRoom);
|
||||
on<RemoveRoomEvent>(_removeRoom);
|
||||
}
|
||||
|
||||
void _createRoom(CreateRoomEvent event, Emitter<CreateUnitState> emit) async {
|
||||
try {
|
||||
emit(LoadingState());
|
||||
if (rooms.contains(event.roomName)) {
|
||||
emit(const ErrorState(message: 'This name is already exist'));
|
||||
emit(CreateRoomState(roomList: rooms));
|
||||
return;
|
||||
}
|
||||
rooms.add(event.roomName);
|
||||
emit(CreateRoomState(roomList: rooms));
|
||||
} catch (e) {
|
||||
emit(const ErrorState(message: 'Something went wrong'));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void _removeRoom(RemoveRoomEvent event, Emitter<CreateUnitState> emit) {
|
||||
try {
|
||||
emit(LoadingState());
|
||||
rooms.removeWhere((element) => element == event.roomName);
|
||||
emit(CreateRoomState(roomList: rooms));
|
||||
} catch (e) {
|
||||
emit(const ErrorState(message: 'Something went wrong'));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
abstract class CreateUnitEvent extends Equatable {
|
||||
const CreateUnitEvent();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class InitialEvent extends CreateUnitEvent {}
|
||||
|
||||
class LoadingEvent extends CreateUnitEvent {}
|
||||
|
||||
class CreateRoomEvent extends CreateUnitEvent {
|
||||
final String roomName;
|
||||
|
||||
const CreateRoomEvent({required this.roomName});
|
||||
|
||||
@override
|
||||
List<Object> get props => [roomName];
|
||||
}
|
||||
|
||||
class RemoveRoomEvent extends CreateUnitEvent {
|
||||
final String roomName;
|
||||
|
||||
const RemoveRoomEvent({required this.roomName});
|
||||
|
||||
@override
|
||||
List<Object> get props => [roomName];
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
abstract class CreateUnitState extends Equatable {
|
||||
const CreateUnitState();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class InitialState extends CreateUnitState {}
|
||||
|
||||
class LoadingState extends CreateUnitState {}
|
||||
|
||||
class CreateRoomState extends CreateUnitState {
|
||||
final List<String> roomList;
|
||||
|
||||
const CreateRoomState({required this.roomList});
|
||||
|
||||
@override
|
||||
List<Object> get props => [roomList];
|
||||
}
|
||||
|
||||
class ErrorState extends CreateUnitState {
|
||||
final String message;
|
||||
|
||||
const ErrorState({required this.message});
|
||||
|
||||
@override
|
||||
List<Object> get props => [message];
|
||||
}
|
||||
Reference in New Issue
Block a user