diff --git a/lib/pages/chat_list/space_view.dart b/lib/pages/chat_list/space_view.dart index 66c07b135..6a1b93889 100644 --- a/lib/pages/chat_list/space_view.dart +++ b/lib/pages/chat_list/space_view.dart @@ -338,6 +338,16 @@ class _SpaceViewState extends State { widget.controller.cancelAction(); // #Pangea if (room == null || room.membership == Membership.leave) return; + if (room.isSpace) { + await room.archiveSpace( + context, + Matrix.of(context).client, + onlyAdmin: false, + ); + } else { + widget.controller.toggleSelection(room.id); + await widget.controller.archiveAction(); + } // Pangea# _refresh(); break; diff --git a/lib/pangea/extensions/pangea_room_extension/events_extension.dart b/lib/pangea/extensions/pangea_room_extension/events_extension.dart index 631d21478..f878bc3cb 100644 --- a/lib/pangea/extensions/pangea_room_extension/events_extension.dart +++ b/lib/pangea/extensions/pangea_room_extension/events_extension.dart @@ -60,9 +60,14 @@ extension EventsRoomExtension on Room { future: () async { final List children = await getChildRooms(); for (final Room child in children) { - await child.archive(); + if (!child.isAnalyticsRoom) { + if (child.membership != Membership.join) { + child.join; + } + await child.archive(); + } } - await archive(); + await _archive(); }, ); MatrixState.pangeaController.classController