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 5df5c36d..759cea27 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 @@ -457,16 +457,17 @@ class SpaceManagementBloc extends Bloc().state; + final updatedSpaces = await saveSpacesHierarchically(event.context, event.spaces, event.communityUuid); - final allSpaces = await _fetchSpacesForCommunity(event.communityUuid); emit(SpaceCreationSuccess(spaces: updatedSpaces)); if (previousState is SpaceManagementLoaded) { await _updateLoadedState( - event.context, + spaceTreeState, previousState, allSpaces, event.communityUuid, @@ -483,35 +484,39 @@ class SpaceManagementBloc extends Bloc _updateLoadedState( - BuildContext context, + SpaceTreeState spaceTreeState, SpaceManagementLoaded previousState, List allSpaces, String communityUuid, Emitter emit, ) async { - var prevSpaceModels = await fetchSpaceModels(); - await fetchTags(); - final spaceTreeState = context.read().state; - final communities = spaceTreeState.searchQuery.isNotEmpty - ? spaceTreeState.filteredCommunity - : spaceTreeState.communityList; + try { + var prevSpaceModels = await fetchSpaceModels(); - for (var community in communities) { - if (community.uuid == communityUuid) { - community.spaces = allSpaces; - _spaceTreeBloc.add(InitialEvent()); + await fetchTags(); - emit(SpaceManagementLoaded( + final communities = spaceTreeState.searchQuery.isNotEmpty + ? spaceTreeState.filteredCommunity + : spaceTreeState.communityList; + + for (var community in communities) { + if (community.uuid == communityUuid) { + community.spaces = allSpaces; + _spaceTreeBloc.add(InitialEvent()); + + emit(SpaceManagementLoaded( communities: communities, products: _cachedProducts ?? [], selectedCommunity: community, selectedSpace: null, spaceModels: prevSpaceModels, - allTags: _cachedTags ?? [])); - return; - } else { - print("Community not found"); + allTags: _cachedTags ?? [], + )); + return; + } } + } catch (e, stackTrace) { + rethrow; } }