diff --git a/lib/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart b/lib/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart index 4f506515c..f55ab71f2 100644 --- a/lib/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart +++ b/lib/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart @@ -87,20 +87,20 @@ mixin MailboxWidgetMixin { return [ if (PlatformInfo.isWeb && mailbox.isSubscribedMailbox) MailboxActions.openInNewTab, - if (mailbox.myRights?.mayCreateChild != false) + if (mailbox.myRights?.mayCreateChild == true) MailboxActions.newSubfolder, if (mailbox.countUnReadEmailsAsString.isNotEmpty) MailboxActions.markAsRead, - if (mailbox.myRights?.mayRename != false) + if (mailbox.myRights?.mayRename == true) MailboxActions.rename, if (mailbox.isTeamMailboxes) if (mailbox.isSubscribedMailbox) MailboxActions.disableMailbox else MailboxActions.enableMailbox, - if (mailbox.isTrash && mailbox.myRights?.mayRemoveItems != false) + if (mailbox.isTrash && mailbox.myRights?.mayRemoveItems == true) MailboxActions.emptyTrash, - if (mailbox.myRights?.mayDelete != false) + if (mailbox.myRights?.mayDelete == true) MailboxActions.delete, ]; } diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index 10ebc47f2..1eba33487 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -2406,7 +2406,7 @@ class MailboxDashBoardController extends ReloadableController PresentationMailbox? mailbox ) { return mailbox != null && - (mailbox.isTrash || (mailbox.isTrashTeamMailbox && mailbox.myRights?.mayRemoveItems != false)) && + (mailbox.isTrash || (mailbox.isTrashTeamMailbox && mailbox.myRights?.mayRemoveItems == true)) && mailbox.countTotalEmails > 0 && !searchController.isSearchActive() && responsiveUtils.isWebDesktop(context); @@ -2417,7 +2417,7 @@ class MailboxDashBoardController extends ReloadableController PresentationMailbox? mailbox ) { return mailbox != null && - (mailbox.isTrash || (mailbox.isTrashTeamMailbox && mailbox.myRights?.mayRemoveItems != false)) && + (mailbox.isTrash || (mailbox.isTrashTeamMailbox && mailbox.myRights?.mayRemoveItems == true)) && mailbox.countTotalEmails > 0 && !searchController.isSearchActive() && !responsiveUtils.isWebDesktop(context); diff --git a/lib/features/thread/presentation/extensions/handle_press_email_selection_action.dart b/lib/features/thread/presentation/extensions/handle_press_email_selection_action.dart index ef53bb937..9549d6bd0 100644 --- a/lib/features/thread/presentation/extensions/handle_press_email_selection_action.dart +++ b/lib/features/thread/presentation/extensions/handle_press_email_selection_action.dart @@ -48,8 +48,9 @@ extension HandlePressEmailSelectionActionExtension on ThreadController { EmailSelectionActionType.markAsNotSpam else EmailSelectionActionType.markAsSpam, - if (selectedMailbox?.isArchive != true && - selectedMailbox?.isChildOfTeamMailboxes != true) + if (emails.isArchiveMessageEnabled( + mailboxDashBoardController.mapMailboxById, + )) EmailSelectionActionType.archiveMessage, if (selectedMailbox?.isDeletePermanentlyEnabled == true) EmailSelectionActionType.deletePermanently, diff --git a/lib/features/thread_detail/presentation/extension/get_thread_detail_action_status.dart b/lib/features/thread_detail/presentation/extension/get_thread_detail_action_status.dart index 896d4d443..5de06479b 100644 --- a/lib/features/thread_detail/presentation/extension/get_thread_detail_action_status.dart +++ b/lib/features/thread_detail/presentation/extension/get_thread_detail_action_status.dart @@ -35,10 +35,12 @@ extension GetThreadDetailActionStatus on ThreadDetailController { bool get threadDetailIsTeamMailbox { return emailsInThreadDetailInfo.any((email) { - final mailboxId = email.mailboxIdContain; - if (mailboxId == null) return false; - return mailboxDashBoardController.mapMailboxById[mailboxId] - ?.isChildOfTeamMailboxes == + return email.mailboxIds?.keys.any( + (mailboxId) => + mailboxDashBoardController + .mapMailboxById[mailboxId]?.isChildOfTeamMailboxes == + true, + ) == true; }); }