TF-3707 Handle empty spam folder with clear mailbox method

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-05-06 17:47:57 +07:00
committed by Dat H. Pham
parent 322c449d49
commit afbebb7eb7
6 changed files with 94 additions and 39 deletions
@@ -6,31 +6,38 @@ import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:tmail_ui_user/features/mailbox/domain/state/clear_mailbox_state.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
extension HandleClearMailboxExtension on MailboxDashBoardController {
void clearMailbox(Session session, AccountId accountId, MailboxId mailboxId) {
void clearMailbox(
Session session,
AccountId accountId,
MailboxId mailboxId,
Role mailboxRole,
) {
viewStateMailboxActionProgress.value = Right(ClearingMailbox());
consumeState(clearMailboxInteractor.execute(
session,
accountId,
mailboxId,
mailboxRole,
));
}
void clearMailboxSuccess(ClearMailboxSuccess success) {
viewStateMailboxActionProgress.value = Right(UIState.idle);
if (currentOverlayContext != null && currentContext != null) {
appToast.showToastSuccessMessage(
currentOverlayContext!,
AppLocalizations.of(currentContext!).toast_message_empty_trash_folder_success,
);
}
toastManager.showMessageSuccess(success);
if (selectedMailbox.value?.id == success.mailboxId) {
emailsInCurrentMailbox.clear();
}
}
void clearMailboxFailure(ClearMailboxFailure failure) {
viewStateMailboxActionProgress.value = Right(UIState.idle);
toastManager.showMessageFailure(failure);
}
}