From 68bb85e521bd1476be59b37b7957d6b11c384bf6 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Wed, 15 Oct 2025 14:33:47 -0400 Subject: [PATCH] fix: don't delete archived activities on delete space (#4414) * fix: don't delete archived activities on delete space * use one list of futures in delete space function --- .../widgets/delete_space_dialog.dart | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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) {