TF-4392 [Team Mailbox] Empty the team mailbox trash

This commit is contained in:
dab246
2026-03-26 16:13:49 +07:00
committed by Dat H. Pham
parent 405501bd40
commit 865940450e
5 changed files with 28 additions and 29 deletions
@@ -1841,41 +1841,40 @@ class MailboxDashBoardController extends ReloadableController
void emptyTrashFolderAction({
Function? onCancelSelectionEmail,
MailboxId? trashFolderId,
int totalEmails = 0,
PresentationMailbox? trashMailbox,
}) {
onCancelSelectionEmail?.call();
final trashMailboxId = trashFolderId ?? mapDefaultMailboxIdByRole[PresentationMailbox.roleTrash];
final trashFolder = trashMailbox
?? (selectedMailbox.value?.isTrash == true ? selectedMailbox.value : null)
?? mapMailboxById[mapDefaultMailboxIdByRole[PresentationMailbox.roleTrash]];
final accountId = this.accountId.value;
final session = sessionCurrent;
if (accountId == null || sessionCurrent == null) {
if (accountId == null || session == null) {
consumeState(Stream.value(Left(EmptyTrashFolderFailure(NotFoundSessionException()))));
return;
}
if (trashMailboxId == null) {
if (trashFolder == null) {
consumeState(Stream.value(Left(EmptyTrashFolderFailure(NotFoundMailboxException()))));
return;
}
if (CapabilityIdentifier.jmapMailboxClear.isSupported(sessionCurrent!, accountId)) {
if (CapabilityIdentifier.jmapMailboxClear.isSupported(session, accountId) &&
trashFolder.isTrashTeamMailbox != true) {
clearMailbox(
sessionCurrent!,
session,
accountId,
trashMailboxId,
trashFolder.id,
PresentationMailbox.roleTrash,
);
} else {
final totalEmailsInTrash = totalEmails == 0
? mapMailboxById[trashMailboxId]?.countTotalEmails ?? 0
: totalEmails;
consumeState(_emptyTrashFolderInteractor.execute(
sessionCurrent!,
session,
accountId,
trashMailboxId,
totalEmailsInTrash,
trashFolder.id,
trashFolder.countTotalEmails,
progressStateController,
));
}
@@ -2406,6 +2405,7 @@ class MailboxDashBoardController extends ReloadableController
) {
return mailbox != null &&
mailbox.isTrash &&
mailbox.myRights?.mayRemoveItems == true &&
mailbox.countTotalEmails > 0 &&
!searchController.isSearchActive() &&
responsiveUtils.isWebDesktop(context);
@@ -2417,6 +2417,7 @@ class MailboxDashBoardController extends ReloadableController
) {
return mailbox != null &&
mailbox.isTrash &&
mailbox.myRights?.mayRemoveItems == true &&
mailbox.countTotalEmails > 0 &&
!searchController.isSearchActive() &&
!responsiveUtils.isWebDesktop(context);