TF-1984 Handle empty Trash and Spam mailbox action
(cherry picked from commit de8f9c4c35dfe8ca423d3b2a9063d1c26de7cb7b)
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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() ?? <Widget>[];
|
||||
|
||||
@@ -43,7 +43,10 @@ class _EmptyMailboxPopupDialogWidgetState extends State<EmptyMailboxPopupDialogW
|
||||
portalFollower: EmptyMailboxDialogOverlay(
|
||||
mailboxNode: widget.mailboxNode,
|
||||
onCancelActionClick: () => setState(() => _visible = false),
|
||||
onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback,
|
||||
onEmptyMailboxActionCallback: (mailboxNode) {
|
||||
setState(() => _visible = false);
|
||||
widget.onEmptyMailboxActionCallback.call(mailboxNode);
|
||||
},
|
||||
),
|
||||
visible: _visible,
|
||||
child: TMailButtonWidget.fromText(
|
||||
|
||||
+1
-4
@@ -13,10 +13,7 @@ class GetUnreadSpamMailboxSuccess extends UIState {
|
||||
List<Object> get props => [unreadSpamMailbox];
|
||||
}
|
||||
|
||||
class InvalidSpamReportCondition extends FeatureFailure {
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
class InvalidSpamReportCondition extends FeatureFailure {}
|
||||
|
||||
class GetUnreadSpamMailboxFailure extends FeatureFailure {
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user