fix: simplify chat context menu

This commit is contained in:
2026-09-25 10:27:41 -03:00
parent 288b5e70d4
commit 7534ecf7d1

View File

@@ -525,7 +525,7 @@ class ChatListController extends State<ChatList>
) )
.toList(); .toList();
var action = await showModalActionPopup<ChatContextAction>( final action = await showModalActionPopup<ChatContextAction>(
context: posContext, context: posContext,
cancelLabel: l10n.cancel, cancelLabel: l10n.cancel,
actions: [ actions: [
@@ -564,36 +564,6 @@ class ChatListController extends State<ChatList>
room.isFavourite ? Icons.push_pin : Icons.push_pin_outlined, room.isFavourite ? Icons.push_pin : Icons.push_pin_outlined,
), ),
), ),
],
AdaptiveModalAction(
value: ChatContextAction.leave,
label: room.membership == Membership.invite
? l10n.delete
: l10n.leave,
icon: const Icon(Icons.delete_outlined),
isDestructive: true,
),
if (room.membership == Membership.invite)
AdaptiveModalAction(
value: ChatContextAction.block,
label: l10n.block,
icon: const Icon(Icons.block_outlined),
isDestructive: true,
),
if (room.membership == Membership.join)
AdaptiveModalAction(
value: ChatContextAction.showMore,
label: l10n.more,
icon: Icon(Icons.adaptive.more_outlined),
),
],
);
if (!posContext.mounted || !mounted) return;
if (action == ChatContextAction.showMore) {
action = await showModalActionPopup<ChatContextAction>(
context: posContext,
cancelLabel: l10n.cancel,
actions: [
if (!room.isFavourite) if (!room.isFavourite)
AdaptiveModalAction( AdaptiveModalAction(
value: ChatContextAction.lowPriority, value: ChatContextAction.lowPriority,
@@ -625,8 +595,24 @@ class ChatListController extends State<ChatList>
icon: const Icon(Icons.group_work_outlined), icon: const Icon(Icons.group_work_outlined),
), ),
], ],
AdaptiveModalAction(
value: ChatContextAction.leave,
label: room.membership == Membership.invite
? l10n.delete
: l10n.leave,
icon: const Icon(Icons.delete_outlined),
isDestructive: true,
),
if (room.membership == Membership.invite)
AdaptiveModalAction(
value: ChatContextAction.block,
label: l10n.block,
icon: const Icon(Icons.block_outlined),
isDestructive: true,
),
],
); );
} if (!posContext.mounted || !mounted) return;
if (action == null) return; if (action == null) return;
if (!mounted) return; if (!mounted) return;
@@ -753,8 +739,6 @@ class ChatListController extends State<ChatList>
future: () => room.removeTag(activeTag!), future: () => room.removeTag(activeTag!),
); );
return; return;
case ChatContextAction.showMore:
throw ('Should not be handled!');
} }
} }
@@ -1021,5 +1005,4 @@ enum ChatContextAction {
leave, leave,
addToSpace, addToSpace,
block, block,
showMore,
} }