diff --git a/lib/features/mailbox/presentation/mailbox_controller.dart b/lib/features/mailbox/presentation/mailbox_controller.dart index 63830efbf..2fbec5eb1 100644 --- a/lib/features/mailbox/presentation/mailbox_controller.dart +++ b/lib/features/mailbox/presentation/mailbox_controller.dart @@ -1220,4 +1220,13 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM } }); } + + void emptyMailboxAction(BuildContext context, PresentationMailbox presentationMailbox) { + log('MailboxController::emptyMailboxAction:presentationMailbox: ${presentationMailbox.name}'); + if (presentationMailbox.isTrash) { + mailboxDashBoardController.emptyTrashFolderAction(trashFolderId: presentationMailbox.id); + } else if (presentationMailbox.isSpam) { + mailboxDashBoardController.emptySpamFolderAction(spamFolderId: presentationMailbox.id); + } + } } \ No newline at end of file diff --git a/lib/features/mailbox/presentation/mailbox_view_web.dart b/lib/features/mailbox/presentation/mailbox_view_web.dart index 34e1e50ed..f30f0eeaa 100644 --- a/lib/features/mailbox/presentation/mailbox_view_web.dart +++ b/lib/features/mailbox/presentation/mailbox_view_web.dart @@ -302,6 +302,7 @@ class MailboxView extends BaseMailboxView { controller ); }, + onEmptyMailboxActionCallback: (mailboxNode) => controller.emptyMailboxAction(context, mailboxNode.item), )), children: _buildListChildTileWidget(context, mailboxNode) ).build(); @@ -322,6 +323,7 @@ class MailboxView extends BaseMailboxView { controller ); }, + onEmptyMailboxActionCallback: (mailboxNode) => controller.emptyMailboxAction(context, mailboxNode.item), )); } }).toList() ?? []; diff --git a/lib/features/mailbox/presentation/widgets/empty_mailbox_popup_dialog_widget.dart b/lib/features/mailbox/presentation/widgets/empty_mailbox_popup_dialog_widget.dart index 48e185d27..dc68dee07 100644 --- a/lib/features/mailbox/presentation/widgets/empty_mailbox_popup_dialog_widget.dart +++ b/lib/features/mailbox/presentation/widgets/empty_mailbox_popup_dialog_widget.dart @@ -43,7 +43,10 @@ class _EmptyMailboxPopupDialogWidgetState extends State setState(() => _visible = false), - onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback, + onEmptyMailboxActionCallback: (mailboxNode) { + setState(() => _visible = false); + widget.onEmptyMailboxActionCallback.call(mailboxNode); + }, ), visible: _visible, child: TMailButtonWidget.fromText( diff --git a/lib/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart b/lib/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart index 14da03853..0dceb7141 100644 --- a/lib/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart +++ b/lib/features/mailbox_dashboard/domain/state/get_number_of_unread_spam_emails_state.dart @@ -13,10 +13,7 @@ class GetUnreadSpamMailboxSuccess extends UIState { List get props => [unreadSpamMailbox]; } -class InvalidSpamReportCondition extends FeatureFailure { - @override - List get props => []; -} +class InvalidSpamReportCondition extends FeatureFailure {} class GetUnreadSpamMailboxFailure extends FeatureFailure { diff --git a/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart index 93f8f88ba..2ad681b61 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart @@ -62,7 +62,9 @@ class SpamReportController extends BaseController { @override void handleFailureViewState(Failure failure) { super.handleFailureViewState(failure); - if (failure is GetUnreadSpamMailboxFailure || failure is GetSpamMailboxCachedFailure) { + if (failure is GetUnreadSpamMailboxFailure || + failure is GetSpamMailboxCachedFailure || + failure is InvalidSpamReportCondition) { _presentationSpamMailbox.value = null; } }