diff --git a/lib/features/search/mailbox/presentation/search_mailbox_view.dart b/lib/features/search/mailbox/presentation/search_mailbox_view.dart index 492bb5be8..5697bc032 100644 --- a/lib/features/search/mailbox/presentation/search_mailbox_view.dart +++ b/lib/features/search/mailbox/presentation/search_mailbox_view.dart @@ -195,16 +195,22 @@ class SearchMailboxView extends GetWidget }); } - List _listPopupMenuItemAction(BuildContext context, PresentationMailbox mailbox) { - final mailboxActionsSupported = mailbox.isSubscribed?.value == true + List _generateListContextMenuItemAction(PresentationMailbox mailbox) { + final mailboxActionsSupported = mailbox.supportedSubscribe ? _listActionForMailboxSubscribed(mailbox) - : _listActionForMailboxUnsubscribed(); + : _listActionForMailboxUnsubscribed(mailbox); - final listContextMenuItemAction = mailboxActionsSupported - .map((action) => ContextMenuItemMailboxAction(action, action.getContextMenuItemState(mailbox))) - .toList(); + final contextMenuActions = listContextMenuItemAction( + mailbox, + controller.dashboardController, + mailboxActions: mailboxActionsSupported + ); - return listContextMenuItemAction + return contextMenuActions; + } + + List _listPopupMenuItemAction(BuildContext context, PresentationMailbox mailbox) { + return _generateListContextMenuItemAction(mailbox) .map((action) => _mailboxFocusedMenuItem(context, action, mailbox)) .toList(); } @@ -251,9 +257,10 @@ class SearchMailboxView extends GetWidget ); } - List _listActionForMailboxUnsubscribed() { + List _listActionForMailboxUnsubscribed(PresentationMailbox mailbox) { return [ - MailboxActions.enableMailbox + if (mailbox.isSupportedEnableMailbox) + MailboxActions.enableMailbox ]; } @@ -266,15 +273,7 @@ class SearchMailboxView extends GetWidget PresentationMailbox mailbox, {RelativeRect? position} ) { - final mailboxActionsSupported = mailbox.supportedSubscribe - ? _listActionForMailboxSubscribed(mailbox) - : _listActionForMailboxUnsubscribed(); - - final contextMenuActions = listContextMenuItemAction( - mailbox, - controller.dashboardController, - mailboxActions: mailboxActionsSupported - ); + final contextMenuActions = _generateListContextMenuItemAction(mailbox); if (controller.responsiveUtils.isScreenWithShortestSide(context) || position == null) { controller.openContextMenuAction( diff --git a/lib/features/search/mailbox/presentation/widgets/mailbox_searched_item_builder.dart b/lib/features/search/mailbox/presentation/widgets/mailbox_searched_item_builder.dart index 57f56eb22..710b37803 100644 --- a/lib/features/search/mailbox/presentation/widgets/mailbox_searched_item_builder.dart +++ b/lib/features/search/mailbox/presentation/widgets/mailbox_searched_item_builder.dart @@ -224,7 +224,7 @@ class _MailboxSearchedItemBuilderState extends State } Widget _buildMenuIcon(BuildContext context) { - if (isHoverItem) { + if (isHoverItem && widget.listPopupMenuItemAction?.isNotEmpty == true) { return InkWell( onTapDown: (detail) { final screenSize = MediaQuery.of(context).size; diff --git a/model/lib/mailbox/presentation_mailbox.dart b/model/lib/mailbox/presentation_mailbox.dart index cb888097d..e8882a349 100644 --- a/model/lib/mailbox/presentation_mailbox.dart +++ b/model/lib/mailbox/presentation_mailbox.dart @@ -116,6 +116,16 @@ class PresentationMailbox with EquatableMixin { } } + bool get isSupportedEnableMailbox { + if (supportedSubscribe) { + return false; + } + if (isPersonal) { + return true; + } else { + return isTeamMailboxes; + } + } @override List get props => [