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
|
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(
|
||||||
|
|||||||
+1
-4
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user