From 29a2dc83c03d1cefa5ebb26ae9ae2a88a8688381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ku=C3=9Fowski?= Date: Wed, 18 Jun 2025 08:48:31 +0200 Subject: [PATCH 1/2] fix: Ban button displayed for already banned users --- lib/widgets/member_actions_popup_menu_button.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/widgets/member_actions_popup_menu_button.dart b/lib/widgets/member_actions_popup_menu_button.dart index 6179cc5fd..a1164203a 100644 --- a/lib/widgets/member_actions_popup_menu_button.dart +++ b/lib/widgets/member_actions_popup_menu_button.dart @@ -143,7 +143,7 @@ void showMemberActionsPopupMenu({ ], ), ), - if (user.canBan) + if (user.canBan && user.membership != Membership.ban) PopupMenuItem( value: _MemberActions.ban, child: Row( From 7d798c57704cc38a39df3cd21be17d8ae52230b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ku=C3=9Fowski?= Date: Wed, 18 Jun 2025 09:07:22 +0200 Subject: [PATCH 2/2] fix: Route back to room list after leaving a chat --- lib/widgets/chat_settings_popup_menu.dart | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/widgets/chat_settings_popup_menu.dart b/lib/widgets/chat_settings_popup_menu.dart index 3978d5e99..069f21da4 100644 --- a/lib/widgets/chat_settings_popup_menu.dart +++ b/lib/widgets/chat_settings_popup_menu.dart @@ -56,6 +56,7 @@ class ChatSettingsPopupMenuState extends State { onSelected: (choice) async { switch (choice) { case ChatPopupMenuActions.leave: + final router = GoRouter.of(context); final confirmed = await showOkCancelAlertDialog( context: context, title: L10n.of(context).areYouSure, @@ -64,15 +65,15 @@ class ChatSettingsPopupMenuState extends State { cancelLabel: L10n.of(context).cancel, isDestructive: true, ); - if (confirmed == OkCancelResult.ok) { - final success = await showFutureLoadingDialog( - context: context, - future: () => widget.room.leave(), - ); - if (success.error == null) { - context.go('/rooms'); - } + if (confirmed != OkCancelResult.ok) return; + final result = await showFutureLoadingDialog( + context: context, + future: () => widget.room.leave(), + ); + if (result.error == null) { + router.go('/rooms'); } + break; case ChatPopupMenuActions.mute: await showFutureLoadingDialog(