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