TF-1432 Handle undo action after subscribe mailbox
This commit is contained in:
@@ -1290,7 +1290,10 @@ class MailboxController extends BaseMailboxController {
|
|||||||
|
|
||||||
void _handleUnsubscribeMultipleMailboxAllSuccess(SubscribeMultipleMailboxAllSuccess success) {
|
void _handleUnsubscribeMultipleMailboxAllSuccess(SubscribeMultipleMailboxAllSuccess success) {
|
||||||
if(success.subscribeAction == MailboxSubscribeAction.unSubscribe) {
|
if(success.subscribeAction == MailboxSubscribeAction.unSubscribe) {
|
||||||
_showToastSubscribeMailboxSuccess(success.parentMailboxId);
|
_showToastSubscribeMailboxSuccess(
|
||||||
|
success.parentMailboxId,
|
||||||
|
listDescendantMailboxIds: success.mailboxIdsSubscribe
|
||||||
|
);
|
||||||
|
|
||||||
if (success.mailboxIdsSubscribe.contains(selectedMailbox?.id)) {
|
if (success.mailboxIdsSubscribe.contains(selectedMailbox?.id)) {
|
||||||
_switchBackToMailboxDefault();
|
_switchBackToMailboxDefault();
|
||||||
@@ -1303,7 +1306,10 @@ class MailboxController extends BaseMailboxController {
|
|||||||
|
|
||||||
void _handleUnsubscribeMultipleMailboxHasSomeSuccess(SubscribeMultipleMailboxHasSomeSuccess success) {
|
void _handleUnsubscribeMultipleMailboxHasSomeSuccess(SubscribeMultipleMailboxHasSomeSuccess success) {
|
||||||
if(success.subscribeAction == MailboxSubscribeAction.unSubscribe) {
|
if(success.subscribeAction == MailboxSubscribeAction.unSubscribe) {
|
||||||
_showToastSubscribeMailboxSuccess(success.parentMailboxId);
|
_showToastSubscribeMailboxSuccess(
|
||||||
|
success.parentMailboxId,
|
||||||
|
listDescendantMailboxIds: success.mailboxIdsSubscribe
|
||||||
|
);
|
||||||
|
|
||||||
if (success.mailboxIdsSubscribe.contains(selectedMailbox?.id)) {
|
if (success.mailboxIdsSubscribe.contains(selectedMailbox?.id)) {
|
||||||
_switchBackToMailboxDefault();
|
_switchBackToMailboxDefault();
|
||||||
@@ -1326,13 +1332,19 @@ class MailboxController extends BaseMailboxController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _showToastSubscribeMailboxSuccess(MailboxId mailboxId) {
|
void _showToastSubscribeMailboxSuccess(
|
||||||
|
MailboxId mailboxIdSubscribed,
|
||||||
|
{List<MailboxId>? listDescendantMailboxIds}
|
||||||
|
) {
|
||||||
if (currentOverlayContext != null && currentContext != null) {
|
if (currentOverlayContext != null && currentContext != null) {
|
||||||
_appToast.showBottomToast(
|
_appToast.showBottomToast(
|
||||||
currentOverlayContext!,
|
currentOverlayContext!,
|
||||||
AppLocalizations.of(currentContext!).toastMsgHideMailboxSuccess,
|
AppLocalizations.of(currentContext!).toastMsgHideMailboxSuccess,
|
||||||
actionName: AppLocalizations.of(currentContext!).undo,
|
actionName: AppLocalizations.of(currentContext!).undo,
|
||||||
onActionClick: () => _undoUnsubscribeMailboxAction(mailboxId),
|
onActionClick: () => _undoUnsubscribeMailboxAction(
|
||||||
|
mailboxIdSubscribed,
|
||||||
|
listDescendantMailboxIds: listDescendantMailboxIds
|
||||||
|
),
|
||||||
leadingIcon: SvgPicture.asset(
|
leadingIcon: SvgPicture.asset(
|
||||||
_imagePaths.icFolderMailbox,
|
_imagePaths.icFolderMailbox,
|
||||||
width: 24,
|
width: 24,
|
||||||
@@ -1349,15 +1361,29 @@ class MailboxController extends BaseMailboxController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _undoUnsubscribeMailboxAction(MailboxId mailboxId) {
|
void _undoUnsubscribeMailboxAction(
|
||||||
|
MailboxId mailboxIdSubscribed,
|
||||||
|
{List<MailboxId>? listDescendantMailboxIds}
|
||||||
|
) {
|
||||||
final _accountId = mailboxDashBoardController.accountId.value;
|
final _accountId = mailboxDashBoardController.accountId.value;
|
||||||
|
|
||||||
if (_accountId != null) {
|
if (_accountId != null) {
|
||||||
final subscribeRequest = _generateSubscribeRequest(
|
SubscribeRequest? subscribeRequest;
|
||||||
mailboxId,
|
|
||||||
MailboxSubscribeState.enabled,
|
if (listDescendantMailboxIds != null) {
|
||||||
MailboxSubscribeAction.undo
|
subscribeRequest = SubscribeMultipleMailboxRequest(
|
||||||
);
|
mailboxIdSubscribed,
|
||||||
|
listDescendantMailboxIds,
|
||||||
|
MailboxSubscribeState.enabled,
|
||||||
|
MailboxSubscribeAction.undo
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
subscribeRequest = SubscribeMailboxRequest(
|
||||||
|
mailboxIdSubscribed,
|
||||||
|
MailboxSubscribeState.enabled,
|
||||||
|
MailboxSubscribeAction.undo
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (subscribeRequest is SubscribeMultipleMailboxRequest) {
|
if (subscribeRequest is SubscribeMultipleMailboxRequest) {
|
||||||
consumeState(_subscribeMultipleMailboxInteractor.execute(_accountId, subscribeRequest));
|
consumeState(_subscribeMultipleMailboxInteractor.execute(_accountId, subscribeRequest));
|
||||||
|
|||||||
Reference in New Issue
Block a user