diff --git a/lib/pages/spaces_management/all_spaces/bloc/space_management_bloc.dart b/lib/pages/spaces_management/all_spaces/bloc/space_management_bloc.dart index 48208c87..b0f28459 100644 --- a/lib/pages/spaces_management/all_spaces/bloc/space_management_bloc.dart +++ b/lib/pages/spaces_management/all_spaces/bloc/space_management_bloc.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'package:flutter/widgets.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:syncrow_web/pages/common/bloc/project_manager.dart'; import 'package:syncrow_web/pages/space_tree/bloc/space_tree_bloc.dart'; @@ -457,7 +458,8 @@ class SpaceManagementBloc extends Bloc> saveSpacesHierarchically( - List spaces, String communityUuid) async { + BuildContext context, List spaces, String communityUuid) async { final orderedSpaces = flattenHierarchy(spaces); final projectUuid = await ProjectManager.getProjectUUID() ?? ''; + var spaceBloc = context.read(); + List communities = spaceBloc.state.communityList; + CommunityModel? selectedCommunity = communities.firstWhere( + (community) => community.uuid == communityUuid, + ); + if (selectedCommunity != null) { + print("community name ${selectedCommunity}, spaces ${selectedCommunity.spaces.length}"); + } final parentsToDelete = orderedSpaces.where((space) => space.status == SpaceStatus.deleted && @@ -532,7 +542,13 @@ class SpaceManagementBloc extends Bloc tagUpdates = []; - final prevSpace = await _api.getSpace(communityUuid, space.uuid!, projectUuid); + List matchedSpaces = + selectedCommunity.spaces.where((space) => space.uuid == space.uuid).toList(); + + if (matchedSpaces.isEmpty) continue; + + final prevSpace = matchedSpaces[0]; + final List subspaceUpdates = []; final List? prevSubspaces = prevSpace?.subspaces; final List? newSubspaces = space.subspaces; @@ -598,6 +614,8 @@ class SpaceManagementBloc extends Bloc spaces; final String communityUuid; + final BuildContext context; - const SaveSpacesEvent({ + const SaveSpacesEvent( + this.context, { required this.spaces, required this.communityUuid, }); @override - List get props => [spaces, communityUuid]; + List get props => [spaces, communityUuid, context]; } class UpdateSpacePositionEvent extends SpaceManagementEvent { @@ -170,4 +172,4 @@ class UpdateSpaceModelCache extends SpaceManagementEvent { class DeleteSpaceModelFromCache extends SpaceManagementEvent { final String deletedUuid; DeleteSpaceModelFromCache(this.deletedUuid); -} \ No newline at end of file +} diff --git a/lib/pages/spaces_management/all_spaces/widgets/community_structure_widget.dart b/lib/pages/spaces_management/all_spaces/widgets/community_structure_widget.dart index 12d76452..56352432 100644 --- a/lib/pages/spaces_management/all_spaces/widgets/community_structure_widget.dart +++ b/lib/pages/spaces_management/all_spaces/widgets/community_structure_widget.dart @@ -460,6 +460,7 @@ class _CommunityStructureAreaState extends State { String communityUuid = widget.selectedCommunity!.uuid; context.read().add(SaveSpacesEvent( + context, spaces: spacesToSave, communityUuid: communityUuid, ));