Added create a unit screen, and implemented otp screen bloc and view

This commit is contained in:
Abdullah Alassaf
2024-05-30 10:59:22 +03:00
parent 28576f2cd5
commit 9877dde78e
22 changed files with 789 additions and 348 deletions
@@ -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];
}