TF-3963 Additional context menu actions for ThreadView and EmailView
This commit is contained in:
@@ -158,6 +158,8 @@ extension EmailActionTypeExtension on EmailActionType {
|
||||
return imagePaths.icOpenInNewTab;
|
||||
case EmailActionType.printAll:
|
||||
return imagePaths.icPrinter;
|
||||
case EmailActionType.reply:
|
||||
return imagePaths.icReply;
|
||||
case EmailActionType.forward:
|
||||
return imagePaths.icForward;
|
||||
case EmailActionType.replyAll:
|
||||
@@ -202,6 +204,8 @@ extension EmailActionTypeExtension on EmailActionType {
|
||||
return appLocalizations.openInNewTab;
|
||||
case EmailActionType.printAll:
|
||||
return appLocalizations.print;
|
||||
case EmailActionType.reply:
|
||||
return appLocalizations.reply;
|
||||
case EmailActionType.forward:
|
||||
return appLocalizations.forward;
|
||||
case EmailActionType.replyAll:
|
||||
|
||||
@@ -263,18 +263,16 @@ class EmailView extends GetWidget<SingleEmailController> {
|
||||
username: controller.session?.username,
|
||||
handleEmailAction: (email, action) => controller.handleEmailAction(context, email, action),
|
||||
additionalActions: [
|
||||
EmailActionType.reply,
|
||||
EmailActionType.forward,
|
||||
EmailActionType.replyAll,
|
||||
EmailActionType.replyToList,
|
||||
EmailActionType.printAll,
|
||||
if (controller.responsiveUtils.isMobile(context))
|
||||
EmailActionType.moveToMailbox,
|
||||
if (!controller.responsiveUtils.isDesktop(context)) ...[
|
||||
EmailActionType.markAsStarred,
|
||||
EmailActionType.unMarkAsStarred,
|
||||
EmailActionType.moveToTrash,
|
||||
EmailActionType.deletePermanently,
|
||||
],
|
||||
EmailActionType.moveToMailbox,
|
||||
EmailActionType.markAsStarred,
|
||||
EmailActionType.unMarkAsStarred,
|
||||
EmailActionType.moveToTrash,
|
||||
EmailActionType.deletePermanently,
|
||||
],
|
||||
emailIsRead: presentationEmail.hasRead,
|
||||
openBottomSheetContextMenu: controller.mailboxDashBoardController.openBottomSheetContextMenu,
|
||||
|
||||
@@ -538,6 +538,8 @@ class EmailActionReactor {
|
||||
if (currentContext == null) return;
|
||||
|
||||
final moreActions = [
|
||||
if (additionalActions.contains(EmailActionType.reply))
|
||||
EmailActionType.reply,
|
||||
if (additionalActions.contains(EmailActionType.forward))
|
||||
EmailActionType.forward,
|
||||
if (presentationEmail.getCountMailAddressWithoutMe(username?.value ?? '') > 1 &&
|
||||
|
||||
+6
@@ -18,8 +18,14 @@ extension HandleEmailMoreActionExtension on SearchEmailController {
|
||||
final mailboxContain = presentationEmail.mailboxContain;
|
||||
final isDrafts = mailboxContain?.isDrafts ?? false;
|
||||
final isSpam = mailboxContain?.isSpam ?? false;
|
||||
final isRead = presentationEmail.hasRead;
|
||||
final isTrash = mailboxContain?.isTrash ?? false;
|
||||
final canPermanentlyDelete = isDrafts || isSpam || isTrash;
|
||||
|
||||
final listEmailActions = [
|
||||
isRead ? EmailActionType.markAsUnread : EmailActionType.markAsRead,
|
||||
EmailActionType.moveToMailbox,
|
||||
canPermanentlyDelete ? EmailActionType.deletePermanently : EmailActionType.moveToTrash,
|
||||
isSpam ? EmailActionType.unSpam : EmailActionType.moveToSpam,
|
||||
if (!isDrafts) EmailActionType.editAsNewEmail,
|
||||
];
|
||||
|
||||
@@ -619,8 +619,14 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
final isSpam = mailboxContain?.isSpam ?? false;
|
||||
final isArchive = mailboxContain?.isArchive ?? false;
|
||||
final isTemplates = mailboxContain?.isTemplates ?? false;
|
||||
final isRead = presentationEmail.hasRead;
|
||||
final isTrash = mailboxContain?.isTrash ?? false;
|
||||
final canPermanentlyDelete = isDrafts || isSpam || isTrash;
|
||||
|
||||
final listEmailActions = [
|
||||
isRead ? EmailActionType.markAsUnread : EmailActionType.markAsRead,
|
||||
EmailActionType.moveToMailbox,
|
||||
canPermanentlyDelete ? EmailActionType.deletePermanently : EmailActionType.moveToTrash,
|
||||
EmailActionType.openInNewTab,
|
||||
if (!isDrafts && !isChildOfTeamMailboxes)
|
||||
isSpam ? EmailActionType.unSpam : EmailActionType.moveToSpam,
|
||||
|
||||
Reference in New Issue
Block a user