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 4b337961..36a6aefe 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 @@ -407,21 +407,31 @@ class _CommunityStructureAreaState extends State { List flattenSpaces(List spaces) { List result = []; + Map idToSpace = {}; void flatten(SpaceModel space) { if (space.status == SpaceStatus.deleted || space.status == SpaceStatus.parentDeleted) { return; } result.add(space); + idToSpace[space.internalId] = space; + for (var child in space.children) { flatten(child); } } + for (var space in spaces) { flatten(space); } + for (var space in result) { + if (space.parent != null) { + space.parent = idToSpace[space.parent!.internalId]; + } + } + return result; }