TF-2101 Add recover_deleted_messages to context_menu and trash view
(cherry picked from commit f2e96e4a7bedc0616e688976248c555bbe9605e5)
This commit is contained in:
@@ -35,7 +35,10 @@ mixin MailboxWidgetMixin {
|
|||||||
MailboxActions.openInNewTab,
|
MailboxActions.openInNewTab,
|
||||||
MailboxActions.newSubfolder,
|
MailboxActions.newSubfolder,
|
||||||
if (mailbox.isTrash)
|
if (mailbox.isTrash)
|
||||||
MailboxActions.emptyTrash
|
...[
|
||||||
|
MailboxActions.emptyTrash,
|
||||||
|
MailboxActions.recoverDeletedMessages
|
||||||
|
]
|
||||||
else if (mailbox.isSpam)
|
else if (mailbox.isSpam)
|
||||||
...[
|
...[
|
||||||
_mailboxActionForSpam(spamReportEnabled),
|
_mailboxActionForSpam(spamReportEnabled),
|
||||||
|
|||||||
@@ -23,7 +23,8 @@ enum MailboxActions {
|
|||||||
emptyTrash,
|
emptyTrash,
|
||||||
emptySpam,
|
emptySpam,
|
||||||
newSubfolder,
|
newSubfolder,
|
||||||
confirmMailSpam;
|
confirmMailSpam,
|
||||||
|
recoverDeletedMessages;
|
||||||
}
|
}
|
||||||
|
|
||||||
extension MailboxActionsExtension on MailboxActions {
|
extension MailboxActionsExtension on MailboxActions {
|
||||||
@@ -71,6 +72,8 @@ extension MailboxActionsExtension on MailboxActions {
|
|||||||
return AppLocalizations.of(context).deleteAllSpamEmails;
|
return AppLocalizations.of(context).deleteAllSpamEmails;
|
||||||
case MailboxActions.confirmMailSpam:
|
case MailboxActions.confirmMailSpam:
|
||||||
return AppLocalizations.of(context).confirmAllEmailHereAreSpam;
|
return AppLocalizations.of(context).confirmAllEmailHereAreSpam;
|
||||||
|
case MailboxActions.recoverDeletedMessages:
|
||||||
|
return AppLocalizations.of(context).recoverDeletedMessages;
|
||||||
default:
|
default:
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
@@ -104,6 +107,8 @@ extension MailboxActionsExtension on MailboxActions {
|
|||||||
return imagePaths.icMailboxTrash;
|
return imagePaths.icMailboxTrash;
|
||||||
case MailboxActions.confirmMailSpam:
|
case MailboxActions.confirmMailSpam:
|
||||||
return imagePaths.icMarkAsRead;
|
return imagePaths.icMarkAsRead;
|
||||||
|
case MailboxActions.recoverDeletedMessages:
|
||||||
|
return imagePaths.icRecoverDeletedMessages;
|
||||||
default:
|
default:
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
@@ -177,6 +182,7 @@ extension MailboxActionsExtension on MailboxActions {
|
|||||||
case MailboxActions.emptyTrash:
|
case MailboxActions.emptyTrash:
|
||||||
case MailboxActions.emptySpam:
|
case MailboxActions.emptySpam:
|
||||||
case MailboxActions.confirmMailSpam:
|
case MailboxActions.confirmMailSpam:
|
||||||
|
case MailboxActions.recoverDeletedMessages:
|
||||||
return ContextMenuItemState.activated;
|
return ContextMenuItemState.activated;
|
||||||
case MailboxActions.markAsRead:
|
case MailboxActions.markAsRead:
|
||||||
return mailbox.countUnReadEmailsAsString.isNotEmpty
|
return mailbox.countUnReadEmailsAsString.isNotEmpty
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_portal/flutter_portal.dart';
|
import 'package:flutter_portal/flutter_portal.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||||
import 'package:tmail_ui_user/features/base/widget/popup_item_no_icon_widget.dart';
|
import 'package:tmail_ui_user/features/base/widget/popup_item_no_icon_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/presentation/composer_view_web.dart';
|
import 'package:tmail_ui_user/features/composer/presentation/composer_view_web.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/email_view.dart';
|
import 'package:tmail_ui_user/features/email/presentation/email_view.dart';
|
||||||
@@ -437,6 +438,25 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
)),
|
)),
|
||||||
|
Obx(() {
|
||||||
|
final mailboxSelected = controller.selectedMailbox.value;
|
||||||
|
if (mailboxSelected != null && mailboxSelected.role == PresentationMailbox.roleTrash) {
|
||||||
|
return Row(
|
||||||
|
children: [
|
||||||
|
const SizedBox(width: 16),
|
||||||
|
TMailButtonWidget.fromIcon(
|
||||||
|
key: const Key('recover_deleted_messages_button'),
|
||||||
|
icon: controller.imagePaths.icRecoverDeletedMessages,
|
||||||
|
borderRadius: 10,
|
||||||
|
iconSize: 16,
|
||||||
|
onTapActionCallback: () => controller.gotoEmailRecovery(),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
}
|
||||||
|
})
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user