TF-3939 Handle archive selection email on mobile view

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-08-05 16:25:02 +07:00
committed by Dat H. Pham
parent 2935b3217b
commit f44118af48
13 changed files with 240 additions and 178 deletions
@@ -25,6 +25,7 @@ import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_reques
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_action_type_for_email_selection.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart';
import 'package:tmail_ui_user/features/thread/presentation/model/delete_action_type.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
@@ -290,21 +291,35 @@ mixin EmailActionController {
mailboxDashBoardController.markAsStarSelectedMultipleEmail(listEmails, markStarAction);
}
void moveSelectedMultipleEmailToMailbox(
List<PresentationEmail> listEmails,
PresentationMailbox mailboxCurrent
) {
mailboxDashBoardController.moveSelectedMultipleEmailToMailbox(
void moveEmailsToMailbox(
List<PresentationEmail> listEmails, {
VoidCallback? onCallbackAction,
}) {
mailboxDashBoardController.moveEmailsToMailbox(
listEmails,
mailboxCurrent);
onCallbackAction: onCallbackAction,
);
}
void moveSelectedMultipleEmailToTrash(List<PresentationEmail> listEmails, PresentationMailbox mailboxCurrent) {
mailboxDashBoardController.moveSelectedMultipleEmailToTrash(listEmails, mailboxCurrent);
void moveEmailsToTrash(List<PresentationEmail> listEmails) {
mailboxDashBoardController.moveEmailsToFolder(
listEmails,
EmailActionType.moveToTrash,
);
}
void moveSelectedMultipleEmailToSpam(List<PresentationEmail> listEmails, PresentationMailbox mailboxCurrent) {
mailboxDashBoardController.moveSelectedMultipleEmailToSpam(listEmails, mailboxCurrent);
void moveEmailsToArchive(List<PresentationEmail> listEmails) {
mailboxDashBoardController.moveEmailsToFolder(
listEmails,
EmailActionType.archiveMessage,
);
}
void moveEmailsToSpam(List<PresentationEmail> listEmails) {
mailboxDashBoardController.moveEmailsToFolder(
listEmails,
EmailActionType.moveToSpam,
);
}
void unSpamSelectedMultipleEmail(List<PresentationEmail> listEmails) {
@@ -1109,22 +1109,11 @@ class ThreadController extends BaseController with EmailActionController {
markAsStarSelectedMultipleEmail(selectionEmail, MarkStarAction.unMarkStar);
break;
case EmailActionType.moveToMailbox:
cancelSelectEmail();
final mailboxContainCurrent = searchController.isSearchEmailRunning
? selectionEmail.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById)
: selectedMailbox;
if (mailboxContainCurrent != null) {
moveSelectedMultipleEmailToMailbox(selectionEmail, mailboxContainCurrent);
}
moveEmailsToMailbox(selectionEmail, onCallbackAction: cancelSelectEmail);
break;
case EmailActionType.moveToTrash:
cancelSelectEmail();
final mailboxContainCurrent = searchController.isSearchEmailRunning
? selectionEmail.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById)
: selectedMailbox;
if (mailboxContainCurrent != null) {
moveSelectedMultipleEmailToTrash(selectionEmail, mailboxContainCurrent);
}
moveEmailsToTrash(selectionEmail);
break;
case EmailActionType.deletePermanently:
final mailboxContainCurrent = searchController.isSearchEmailRunning
@@ -1141,17 +1130,16 @@ class ThreadController extends BaseController with EmailActionController {
break;
case EmailActionType.moveToSpam:
cancelSelectEmail();
final mailboxContainCurrent = searchController.isSearchEmailRunning
? selectionEmail.getCurrentMailboxContain(mailboxDashBoardController.mapMailboxById)
: selectedMailbox;
if (mailboxContainCurrent != null) {
moveSelectedMultipleEmailToSpam(selectionEmail, mailboxContainCurrent);
}
moveEmailsToSpam(selectionEmail);
break;
case EmailActionType.unSpam:
cancelSelectEmail();
unSpamSelectedMultipleEmail(selectionEmail);
break;
case EmailActionType.archiveMessage:
cancelSelectEmail();
moveEmailsToArchive(selectionEmail);
break;
default:
break;
}