diff --git a/assets/icons/delete_space_model.svg b/assets/icons/delete_space_model.svg
new file mode 100644
index 00000000..7fb9a9b0
--- /dev/null
+++ b/assets/icons/delete_space_model.svg
@@ -0,0 +1,6 @@
+
diff --git a/lib/pages/spaces_management/space_model/bloc/space_model_bloc.dart b/lib/pages/spaces_management/space_model/bloc/space_model_bloc.dart
index facfe64f..16ba41c0 100644
--- a/lib/pages/spaces_management/space_model/bloc/space_model_bloc.dart
+++ b/lib/pages/spaces_management/space_model/bloc/space_model_bloc.dart
@@ -4,9 +4,6 @@ import 'package:syncrow_web/pages/spaces_management/space_model/bloc/space_model
import 'package:syncrow_web/pages/spaces_management/space_model/bloc/space_model_state.dart';
import 'package:syncrow_web/pages/spaces_management/space_model/models/space_template_model.dart';
import 'package:syncrow_web/services/space_model_mang_api.dart';
-import 'package:syncrow_web/utils/constants/strings_manager.dart';
-import 'package:syncrow_web/utils/constants/temp_const.dart';
-import 'package:syncrow_web/utils/helpers/shared_preferences_helper.dart';
class SpaceModelBloc extends Bloc {
final SpaceModelManagementApi api;
@@ -17,6 +14,7 @@ class SpaceModelBloc extends Bloc {
}) : super(SpaceModelLoaded(spaceModels: initialSpaceModels)) {
on(_onCreateSpaceModel);
on(_onUpdateSpaceModel);
+ on(_onDeleteSpaceModel);
}
Future _onCreateSpaceModel(
@@ -50,7 +48,7 @@ class SpaceModelBloc extends Bloc {
final projectUuid = await ProjectManager.getProjectUUID() ?? '';
final newSpaceModel =
- await api.getSpaceModel(event.spaceModelUuid ?? '', projectUuid);
+ await api.getSpaceModel(event.spaceModelUuid, projectUuid);
if (newSpaceModel != null) {
final updatedSpaceModels = currentState.spaceModels.map((model) {
return model.uuid == event.spaceModelUuid ? newSpaceModel : model;
@@ -62,4 +60,28 @@ class SpaceModelBloc extends Bloc {
}
}
}
+
+ Future _onDeleteSpaceModel(
+ DeleteSpaceModel event, Emitter emit) async {
+ final currentState = state;
+
+ if (currentState is SpaceModelLoaded) {
+ try {
+ final projectUuid = await ProjectManager.getProjectUUID() ?? '';
+
+ final deletedSuccessfully =
+ await api.deleteSpaceModel(event.spaceModelUuid, projectUuid);
+
+ if (deletedSuccessfully) {
+ final updatedSpaceModels = currentState.spaceModels
+ .where((model) => model.uuid != event.spaceModelUuid)
+ .toList();
+
+ emit(SpaceModelLoaded(spaceModels: updatedSpaceModels));
+ }
+ } catch (e) {
+ emit(SpaceModelError(message: e.toString()));
+ }
+ }
+ }
}
diff --git a/lib/pages/spaces_management/space_model/bloc/space_model_event.dart b/lib/pages/spaces_management/space_model/bloc/space_model_event.dart
index 8f71e611..33856427 100644
--- a/lib/pages/spaces_management/space_model/bloc/space_model_event.dart
+++ b/lib/pages/spaces_management/space_model/bloc/space_model_event.dart
@@ -34,3 +34,12 @@ class UpdateSpaceModel extends SpaceModelEvent {
@override
List