TF-3372 Handle Empty mailbox success + failure states
This commit is contained in:
committed by
Dat H. Pham
parent
06adc9e6a8
commit
b07a142bcc
+25
-6
@@ -439,8 +439,11 @@ class MailboxDashBoardController extends ReloadableController
|
||||
_handleRestoreDeletedMessageFailed();
|
||||
} else if (failure is GetRestoredDeletedMessageFailure) {
|
||||
_handleRestoreDeletedMessageFailed();
|
||||
} else if (failure is EmptySpamFolderFailure
|
||||
|| failure is MoveMultipleEmailToMailboxFailure) {
|
||||
} else if (failure is EmptySpamFolderFailure) {
|
||||
_handleEmptySpamFolderFailure(failure);
|
||||
} else if (failure is EmptyTrashFolderFailure) {
|
||||
_handleEmptyTrashFolderFailure(failure);
|
||||
} else if (failure is MoveMultipleEmailToMailboxFailure) {
|
||||
toastManager.showMessageFailure(failure);
|
||||
} else if (failure is GetComposerCacheFailure) {
|
||||
_handleIdentityCache();
|
||||
@@ -1385,12 +1388,22 @@ class MailboxDashBoardController extends ReloadableController
|
||||
}
|
||||
}
|
||||
|
||||
void emptyTrashFolderAction({Function? onCancelSelectionEmail, MailboxId? trashFolderId}) {
|
||||
void emptyTrashFolderAction({
|
||||
Function? onCancelSelectionEmail,
|
||||
MailboxId? trashFolderId,
|
||||
int totalEmails = 0,
|
||||
}) {
|
||||
onCancelSelectionEmail?.call();
|
||||
|
||||
final trashMailboxId = trashFolderId ?? mapDefaultMailboxIdByRole[PresentationMailbox.roleTrash];
|
||||
if (sessionCurrent != null && accountId.value != null && trashMailboxId != null) {
|
||||
consumeState(_emptyTrashFolderInteractor.execute(sessionCurrent!, accountId.value!, trashMailboxId));
|
||||
consumeState(_emptyTrashFolderInteractor.execute(
|
||||
sessionCurrent!,
|
||||
accountId.value!,
|
||||
trashMailboxId,
|
||||
totalEmails,
|
||||
_progressStateController
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2371,7 +2384,11 @@ class MailboxDashBoardController extends ReloadableController
|
||||
consumeState(_storeSessionInteractor.execute(session));
|
||||
}
|
||||
|
||||
void emptySpamFolderAction({Function? onCancelSelectionEmail, MailboxId? spamFolderId}) {
|
||||
void emptySpamFolderAction({
|
||||
Function? onCancelSelectionEmail,
|
||||
MailboxId? spamFolderId,
|
||||
int totalEmails = 0
|
||||
}) {
|
||||
onCancelSelectionEmail?.call();
|
||||
|
||||
spamFolderId ??= spamMailboxId;
|
||||
@@ -2389,7 +2406,9 @@ class MailboxDashBoardController extends ReloadableController
|
||||
consumeState(_emptySpamFolderInteractor.execute(
|
||||
sessionCurrent!,
|
||||
accountId.value!,
|
||||
spamFolderId
|
||||
spamFolderId,
|
||||
totalEmails,
|
||||
_progressStateController
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
+12
-3
@@ -5,6 +5,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/styles/mark_mailbox_as_read_loading_banner_style.dart';
|
||||
import 'package:tmail_ui_user/features/thread/domain/state/empty_spam_folder_state.dart';
|
||||
|
||||
class MarkMailboxAsReadLoadingBanner extends StatelessWidget with AppLoaderMixin {
|
||||
final Either<Failure, Success> viewState;
|
||||
@@ -25,13 +26,21 @@ class MarkMailboxAsReadLoadingBanner extends StatelessWidget with AppLoaderMixin
|
||||
child: horizontalLoadingWidget);
|
||||
} else if (success is UpdatingMarkAsMailboxReadState) {
|
||||
final percent = success.countRead / success.totalUnread;
|
||||
return Padding(
|
||||
padding: MarkMailboxAsReadLoadingBannerStyle.bannerMargin,
|
||||
child: horizontalPercentLoadingWidget(percent));
|
||||
return _buildProgressBanner(percent);
|
||||
} else if (success is EmptyingFolderState) {
|
||||
final percent = success.countEmailsDeleted / success.totalEmails;
|
||||
return _buildProgressBanner(percent);
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Padding _buildProgressBanner(double percent) {
|
||||
return Padding(
|
||||
padding: MarkMailboxAsReadLoadingBannerStyle.bannerMargin,
|
||||
child: horizontalPercentLoadingWidget(percent)
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user