mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-08-25 20:29:40 +00:00
Created DeleteSpaceBloc
.
This commit is contained in:
@ -0,0 +1,31 @@
|
|||||||
|
import 'package:bloc/bloc.dart';
|
||||||
|
import 'package:equatable/equatable.dart';
|
||||||
|
import 'package:syncrow_web/pages/space_management_v2/modules/delete_space/domain/params/delete_space_param.dart';
|
||||||
|
import 'package:syncrow_web/pages/space_management_v2/modules/delete_space/domain/services/delete_space_service.dart';
|
||||||
|
import 'package:syncrow_web/services/api/api_exception.dart';
|
||||||
|
|
||||||
|
part 'delete_space_event.dart';
|
||||||
|
part 'delete_space_state.dart';
|
||||||
|
|
||||||
|
class DeleteSpaceBloc extends Bloc<DeleteSpaceEvent, DeleteSpaceState> {
|
||||||
|
DeleteSpaceBloc(this._deleteSpaceService) : super(DeleteSpaceInitial()) {
|
||||||
|
on<DeleteSpace>(_onDeleteSpace);
|
||||||
|
}
|
||||||
|
|
||||||
|
final DeleteSpaceService _deleteSpaceService;
|
||||||
|
|
||||||
|
Future<void> _onDeleteSpace(
|
||||||
|
DeleteSpace event,
|
||||||
|
Emitter<DeleteSpaceState> emit
|
||||||
|
) async {
|
||||||
|
emit(DeleteSpaceLoading());
|
||||||
|
try {
|
||||||
|
await _deleteSpaceService.delete(event.param);
|
||||||
|
emit(const DeleteSpaceSuccess('Space deleted successfully'));
|
||||||
|
} on APIException catch (e) {
|
||||||
|
emit(DeleteSpaceFailure(e.message));
|
||||||
|
} catch (e) {
|
||||||
|
emit(const DeleteSpaceFailure('Failed to delete space'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
part of 'delete_space_bloc.dart';
|
||||||
|
|
||||||
|
sealed class DeleteSpaceEvent extends Equatable {
|
||||||
|
const DeleteSpaceEvent();
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<Object> get props => [];
|
||||||
|
}
|
||||||
|
|
||||||
|
final class DeleteSpace extends DeleteSpaceEvent {
|
||||||
|
const DeleteSpace(this.param);
|
||||||
|
|
||||||
|
final DeleteSpaceParam param;
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<Object> get props => [param];
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
part of 'delete_space_bloc.dart';
|
||||||
|
|
||||||
|
sealed class DeleteSpaceState extends Equatable {
|
||||||
|
const DeleteSpaceState();
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<Object> get props => [];
|
||||||
|
}
|
||||||
|
|
||||||
|
final class DeleteSpaceInitial extends DeleteSpaceState {}
|
||||||
|
|
||||||
|
final class DeleteSpaceLoading extends DeleteSpaceState {}
|
||||||
|
|
||||||
|
final class DeleteSpaceSuccess extends DeleteSpaceState {
|
||||||
|
const DeleteSpaceSuccess(this.successMessage);
|
||||||
|
|
||||||
|
final String successMessage;
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<Object> get props => [successMessage];
|
||||||
|
}
|
||||||
|
|
||||||
|
final class DeleteSpaceFailure extends DeleteSpaceState {
|
||||||
|
const DeleteSpaceFailure(this.errorMessage);
|
||||||
|
|
||||||
|
final String errorMessage;
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<Object> get props => [errorMessage];
|
||||||
|
}
|
Reference in New Issue
Block a user