diff --git a/lib/pangea/chat_settings/widgets/delete_space_dialog.dart b/lib/pangea/chat_settings/widgets/delete_space_dialog.dart index f1d311992..3b3db0800 100644 --- a/lib/pangea/chat_settings/widgets/delete_space_dialog.dart +++ b/lib/pangea/chat_settings/widgets/delete_space_dialog.dart @@ -4,6 +4,7 @@ import 'package:matrix/matrix.dart'; import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/l10n/l10n.dart'; +import 'package:fluffychat/pangea/activity_sessions/activity_room_extension.dart'; import 'package:fluffychat/pangea/chat_settings/utils/delete_room.dart'; import 'package:fluffychat/pangea/common/utils/error_handler.dart'; import 'package:fluffychat/pangea/common/widgets/error_indicator.dart'; @@ -105,14 +106,22 @@ class DeleteSpaceDialogState extends State { }); try { - final List> deleteFutures = []; + final List> futures = []; for (final room in _roomsToDelete) { final roomInstance = widget.space.client.getRoomById(room.roomId); if (roomInstance != null) { - deleteFutures.add(roomInstance.delete()); + // Niether delete not leave activities the user has archived, + // since they're hidden in the main chat UI. + if (roomInstance.isActivitySession) { + if (!roomInstance.hasArchivedActivity) { + futures.add(roomInstance.leave()); + } + } else { + futures.add(roomInstance.delete()); + } } } - await Future.wait(deleteFutures); + await Future.wait(futures); await widget.space.delete(); Navigator.of(context).pop(true); } catch (e, s) {