diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index a6c9e4c78..e42a1a1d8 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -654,31 +654,45 @@ class MailboxDashBoardController extends ReloadableController { List listEmails, PresentationMailbox destinationMailbox ) async { - if (accountId.value != null && selectedMailbox.value != null) { - if (destinationMailbox.isTrash) { - _moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest( - listEmails.listEmailIds, - selectedMailbox.value!.id, - destinationMailbox.id, - MoveAction.moving, - EmailActionType.moveToTrash)); - } else if (destinationMailbox.isSpam) { - _moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest( - listEmails.listEmailIds, - selectedMailbox.value!.id, - destinationMailbox.id, - MoveAction.moving, - EmailActionType.moveToSpam)); - } else { - _moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest( - listEmails.listEmailIds, - selectedMailbox.value!.id, - destinationMailbox.id, - MoveAction.moving, - EmailActionType.moveToMailbox, - destinationPath: destinationMailbox.mailboxPath)); + for (final element in listEmails) { + final currentMailBox = searchController.isSearchEmailRunning + ? element.findMailboxContain(mapMailboxById) + : selectedMailbox.value; + if (accountId.value != null && currentMailBox != null) { + if (destinationMailbox.isTrash) { + moveToMailbox(accountId.value!, + MoveToMailboxRequest( + [element].listEmailIds, + currentMailBox.id, + destinationMailbox.id, + MoveAction.moving, + EmailActionType.moveToTrash, + ), + ); + } else if (destinationMailbox.isSpam) { + moveToMailbox(accountId.value!, + MoveToMailboxRequest( + [element].listEmailIds, + currentMailBox.id, + destinationMailbox.id, + MoveAction.moving, + EmailActionType.moveToSpam, + ), + ); + } else { + moveToMailbox(accountId.value!, + MoveToMailboxRequest( + [element].listEmailIds, + currentMailBox.id, + destinationMailbox.id, + MoveAction.moving, + EmailActionType.moveToMailbox, + destinationPath: destinationMailbox.mailboxPath, + ), + ); + } + } } - } } void _moveSelectedEmailMultipleToMailboxAction( diff --git a/lib/features/thread/presentation/thread_controller.dart b/lib/features/thread/presentation/thread_controller.dart index d5fea5ed1..22716e281 100644 --- a/lib/features/thread/presentation/thread_controller.dart +++ b/lib/features/thread/presentation/thread_controller.dart @@ -324,7 +324,11 @@ class ThreadController extends BaseController { } else if (success is MarkAsMailboxReadHasSomeEmailFailure) { _refreshEmailChanges(currentEmailState: success.currentEmailState); } else if (success is MoveMultipleEmailToMailboxAllSuccess) { - _refreshEmailChanges(currentEmailState: success.currentEmailState); + if(searchController.isSearchEmailRunning) { + mailboxDashBoardController.quickSearchEmails(); + } else { + _refreshEmailChanges(currentEmailState: success.currentEmailState); + } } }); }