TF-1984 Handle empty Trash and Spam mailbox action

(cherry picked from commit de8f9c4c35dfe8ca423d3b2a9063d1c26de7cb7b)
This commit is contained in:
dab246
2023-08-30 16:45:41 +07:00
committed by Dat Vu
parent bacf448b33
commit a1277497b8
5 changed files with 19 additions and 6 deletions
@@ -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(
@@ -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;
}
}