TF-2101 Add recover_deleted_messages to context_menu and trash view

(cherry picked from commit f2e96e4a7bedc0616e688976248c555bbe9605e5)
This commit is contained in:
hieubt
2023-12-20 23:49:47 +07:00
committed by Dat H. Pham
parent 25cc14a188
commit 61e3067c57
3 changed files with 31 additions and 2 deletions
@@ -35,7 +35,10 @@ mixin MailboxWidgetMixin {
MailboxActions.openInNewTab,
MailboxActions.newSubfolder,
if (mailbox.isTrash)
MailboxActions.emptyTrash
...[
MailboxActions.emptyTrash,
MailboxActions.recoverDeletedMessages
]
else if (mailbox.isSpam)
...[
_mailboxActionForSpam(spamReportEnabled),
@@ -23,7 +23,8 @@ enum MailboxActions {
emptyTrash,
emptySpam,
newSubfolder,
confirmMailSpam;
confirmMailSpam,
recoverDeletedMessages;
}
extension MailboxActionsExtension on MailboxActions {
@@ -71,6 +72,8 @@ extension MailboxActionsExtension on MailboxActions {
return AppLocalizations.of(context).deleteAllSpamEmails;
case MailboxActions.confirmMailSpam:
return AppLocalizations.of(context).confirmAllEmailHereAreSpam;
case MailboxActions.recoverDeletedMessages:
return AppLocalizations.of(context).recoverDeletedMessages;
default:
return '';
}
@@ -104,6 +107,8 @@ extension MailboxActionsExtension on MailboxActions {
return imagePaths.icMailboxTrash;
case MailboxActions.confirmMailSpam:
return imagePaths.icMarkAsRead;
case MailboxActions.recoverDeletedMessages:
return imagePaths.icRecoverDeletedMessages;
default:
return '';
}
@@ -177,6 +182,7 @@ extension MailboxActionsExtension on MailboxActions {
case MailboxActions.emptyTrash:
case MailboxActions.emptySpam:
case MailboxActions.confirmMailSpam:
case MailboxActions.recoverDeletedMessages:
return ContextMenuItemState.activated;
case MailboxActions.markAsRead:
return mailbox.countUnReadEmailsAsString.isNotEmpty
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_portal/flutter_portal.dart';
import 'package:flutter_svg/flutter_svg.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/composer/presentation/composer_view_web.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();
}
})
]);
}