TF-3707 Handle empty trash with clear mailbox method

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-05-06 16:44:56 +07:00
committed by Dat H. Pham
parent e415077738
commit 322c449d49
10 changed files with 93 additions and 10 deletions
@@ -0,0 +1,36 @@
import 'package:core/presentation/state/success.dart';
import 'package:dartz/dartz.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
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) {
consumeState(clearMailboxInteractor.execute(
session,
accountId,
mailboxId,
));
}
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,
);
}
if (selectedMailbox.value?.id == success.mailboxId) {
emailsInCurrentMailbox.clear();
}
}
}