mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 15:17:31 +00:00
added event for creating subspace
This commit is contained in:
@ -3,7 +3,8 @@ import 'package:syncrow_web/pages/spaces_management/space_model/bloc/create_spac
|
||||
import 'package:syncrow_web/pages/spaces_management/space_model/bloc/create_space_model_state.dart';
|
||||
import 'package:syncrow_web/pages/spaces_management/space_model/models/space_template_model.dart';
|
||||
|
||||
class CreateSpaceModelBloc extends Bloc<CreateSpaceModelEvent, CreateSpaceModelState> {
|
||||
class CreateSpaceModelBloc
|
||||
extends Bloc<CreateSpaceModelEvent, CreateSpaceModelState> {
|
||||
SpaceTemplateModel? _space;
|
||||
|
||||
CreateSpaceModelBloc() : super(CreateSpaceModelInitial()) {
|
||||
@ -22,5 +23,20 @@ class CreateSpaceModelBloc extends Bloc<CreateSpaceModelEvent, CreateSpaceModelS
|
||||
_space = event.spaceTemplate;
|
||||
emit(CreateSpaceModelLoaded(_space!));
|
||||
});
|
||||
|
||||
on<AddSubspacesToSpaceTemplate>((event, emit) {
|
||||
if (_space != null) {
|
||||
final updatedSpace = _space!.copyWith(
|
||||
subspaceModels: [
|
||||
...(_space!.subspaceModels ?? []),
|
||||
...event.subspaces,
|
||||
],
|
||||
);
|
||||
_space = updatedSpace;
|
||||
emit(CreateSpaceModelLoaded(updatedSpace));
|
||||
} else {
|
||||
emit(CreateSpaceModelError("Space template not initialized"));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@ -9,3 +9,9 @@ class UpdateSpaceTemplate extends CreateSpaceModelEvent {
|
||||
|
||||
UpdateSpaceTemplate(this.spaceTemplate);
|
||||
}
|
||||
|
||||
class AddSubspacesToSpaceTemplate extends CreateSpaceModelEvent {
|
||||
final List<SubspaceTemplateModel> subspaces;
|
||||
|
||||
AddSubspacesToSpaceTemplate(this.subspaces);
|
||||
}
|
||||
|
@ -41,6 +41,22 @@ class SpaceTemplateModel {
|
||||
'tags': tags?.map((e) => e.toJson()).toList(),
|
||||
};
|
||||
}
|
||||
|
||||
SpaceTemplateModel copyWith({
|
||||
String? uuid,
|
||||
String? modelName,
|
||||
List<SubspaceTemplateModel>? subspaceModels,
|
||||
List<TagModel>? tags,
|
||||
String? internalId,
|
||||
}) {
|
||||
return SpaceTemplateModel(
|
||||
uuid: uuid ?? this.uuid,
|
||||
modelName: modelName ?? this.modelName,
|
||||
subspaceModels: subspaceModels ?? this.subspaceModels,
|
||||
tags: tags ?? this.tags,
|
||||
internalId: internalId ?? this.internalId,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class SubspaceTemplateModel {
|
||||
|
@ -3,6 +3,8 @@ import 'package:syncrow_web/pages/common/buttons/cancel_button.dart';
|
||||
import 'package:syncrow_web/pages/common/buttons/default_button.dart';
|
||||
import 'package:syncrow_web/pages/spaces_management/all_spaces/model/product_model.dart';
|
||||
import 'package:syncrow_web/pages/spaces_management/all_spaces/widgets/add_device_type_widget.dart';
|
||||
import 'package:syncrow_web/pages/spaces_management/space_model/bloc/create_space_model_bloc.dart';
|
||||
import 'package:syncrow_web/pages/spaces_management/space_model/bloc/create_space_model_event.dart';
|
||||
import 'package:syncrow_web/pages/spaces_management/space_model/models/space_template_model.dart';
|
||||
import 'package:syncrow_web/pages/spaces_management/space_model/widgets/button_content_widget.dart';
|
||||
import 'package:syncrow_web/pages/spaces_management/space_model/widgets/dialog/create_subspace_model_dialog.dart';
|
||||
@ -73,7 +75,11 @@ class CreateSpaceModelDialog extends StatelessWidget {
|
||||
if (result != null) {
|
||||
// Update the subspaces
|
||||
subspaces = result;
|
||||
print('Updated Subspaces: $subspaces');
|
||||
if (result.isNotEmpty) {
|
||||
context
|
||||
.read<CreateSpaceModelBloc>()
|
||||
.add(AddSubspacesToSpaceTemplate(subspaces));
|
||||
}
|
||||
}
|
||||
},
|
||||
style: TextButton.styleFrom(
|
||||
|
Reference in New Issue
Block a user