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 controller
); );
}, },
onEmptyMailboxActionCallback: (mailboxNode) => controller.emptyMailboxAction(context, mailboxNode.item),
)), )),
children: _buildListChildTileWidget(context, mailboxNode) children: _buildListChildTileWidget(context, mailboxNode)
).build(); ).build();
@@ -322,6 +323,7 @@ class MailboxView extends BaseMailboxView {
controller controller
); );
}, },
onEmptyMailboxActionCallback: (mailboxNode) => controller.emptyMailboxAction(context, mailboxNode.item),
)); ));
} }
}).toList() ?? <Widget>[]; }).toList() ?? <Widget>[];
@@ -43,7 +43,10 @@ class _EmptyMailboxPopupDialogWidgetState extends State<EmptyMailboxPopupDialogW
portalFollower: EmptyMailboxDialogOverlay( portalFollower: EmptyMailboxDialogOverlay(
mailboxNode: widget.mailboxNode, mailboxNode: widget.mailboxNode,
onCancelActionClick: () => setState(() => _visible = false), onCancelActionClick: () => setState(() => _visible = false),
onEmptyMailboxActionCallback: widget.onEmptyMailboxActionCallback, onEmptyMailboxActionCallback: (mailboxNode) {
setState(() => _visible = false);
widget.onEmptyMailboxActionCallback.call(mailboxNode);
},
), ),
visible: _visible, visible: _visible,
child: TMailButtonWidget.fromText( child: TMailButtonWidget.fromText(
@@ -13,10 +13,7 @@ class GetUnreadSpamMailboxSuccess extends UIState {
List<Object> get props => [unreadSpamMailbox]; List<Object> get props => [unreadSpamMailbox];
} }
class InvalidSpamReportCondition extends FeatureFailure { class InvalidSpamReportCondition extends FeatureFailure {}
@override
List<Object?> get props => [];
}
class GetUnreadSpamMailboxFailure extends FeatureFailure { class GetUnreadSpamMailboxFailure extends FeatureFailure {
@@ -62,7 +62,9 @@ class SpamReportController extends BaseController {
@override @override
void handleFailureViewState(Failure failure) { void handleFailureViewState(Failure failure) {
super.handleFailureViewState(failure); super.handleFailureViewState(failure);
if (failure is GetUnreadSpamMailboxFailure || failure is GetSpamMailboxCachedFailure) { if (failure is GetUnreadSpamMailboxFailure ||
failure is GetSpamMailboxCachedFailure ||
failure is InvalidSpamReportCondition) {
_presentationSpamMailbox.value = null; _presentationSpamMailbox.value = null;
} }
} }