From 3509d146f7207f7e15bae9e83e554ac792b514c3 Mon Sep 17 00:00:00 2001 From: dab246 Date: Fri, 10 Feb 2023 18:17:12 +0700 Subject: [PATCH] TF-1432 Close email view when mailbox disabled --- .../presentation/mailbox_controller.dart | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/features/mailbox/presentation/mailbox_controller.dart b/lib/features/mailbox/presentation/mailbox_controller.dart index 6fc2d84f1..76ef55a81 100644 --- a/lib/features/mailbox/presentation/mailbox_controller.dart +++ b/lib/features/mailbox/presentation/mailbox_controller.dart @@ -121,6 +121,8 @@ class MailboxController extends BaseMailboxController { PresentationMailbox? get selectedMailbox => mailboxDashBoardController.selectedMailbox.value; + PresentationEmail? get selectedEmail => mailboxDashBoardController.selectedEmail.value; + MailboxController( this._getAllMailboxInteractor, this._refreshAllMailboxInteractor, @@ -1278,6 +1280,7 @@ class MailboxController extends BaseMailboxController { if (success.mailboxId == selectedMailbox?.id) { _switchBackToMailboxDefault(); + _closeEmailViewIfMailboxDisabled([success.mailboxId]); } } @@ -1290,6 +1293,7 @@ class MailboxController extends BaseMailboxController { if (success.mailboxIdsSubscribe.contains(selectedMailbox?.id)) { _switchBackToMailboxDefault(); + _closeEmailViewIfMailboxDisabled(success.mailboxIdsSubscribe); } } @@ -1302,12 +1306,25 @@ class MailboxController extends BaseMailboxController { if (success.mailboxIdsSubscribe.contains(selectedMailbox?.id)) { _switchBackToMailboxDefault(); + _closeEmailViewIfMailboxDisabled(success.mailboxIdsSubscribe); } } refreshMailboxChanges(currentMailboxState: success.currentMailboxState); } + void _closeEmailViewIfMailboxDisabled(List mailboxIdsDisabled) { + if (selectedEmail == null) { + return; + } + + final mailboxContain = selectedEmail!.findMailboxContain(mailboxDashBoardController.mapMailboxById); + if (mailboxContain != null && mailboxIdsDisabled.contains(mailboxContain.id)) { + mailboxDashBoardController.clearSelectedEmail(); + mailboxDashBoardController.dispatchRoute(DashboardRoutes.thread); + } + } + void _showToastSubscribeMailboxSuccess(MailboxId mailboxId) { if (currentOverlayContext != null && currentContext != null) { _appToast.showBottomToast(