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
This commit is contained in:
ggurdin 2025-10-15 14:33:47 -04:00 committed by GitHub
parent d3e1da20df
commit 68bb85e521
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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<DeleteSpaceDialog> {
});
try {
final List<Future<void>> deleteFutures = [];
final List<Future<void>> 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) {