TF-599 Preserve the state of the tree after performing actions with the mailbox

This commit is contained in:
dab246
2022-06-01 11:11:16 +07:00
committed by Dat H. Pham
parent 3964b74d30
commit 3b3da513e4
2 changed files with 37 additions and 16 deletions
@@ -263,12 +263,22 @@ class MailboxController extends BaseMailboxController {
} }
void _setUpMapMailboxIdDefault(List<PresentationMailbox> allMailbox, MailboxTree defaultTree, MailboxTree folderTree) { void _setUpMapMailboxIdDefault(List<PresentationMailbox> allMailbox, MailboxTree defaultTree, MailboxTree folderTree) {
final mapDefaultMailboxId = {
for (var mailboxNode
in defaultTree.root.childrenItems ?? List<MailboxNode>.empty())
mailboxNode.item.role!: mailboxNode.item.id
};
final mapDefaultMailboxId = { for (var mailboxNode in defaultTree.root.childrenItems ?? List<MailboxNode>.empty()) mailboxNode.item.role! : mailboxNode.item.id }; final mapDefaultMailbox = {
for (var mailboxNode
in defaultTree.root.childrenItems ?? List<MailboxNode>.empty())
mailboxNode.item.role!: mailboxNode.item
};
final mapDefaultMailbox = { for (var mailboxNode in defaultTree.root.childrenItems ?? List<MailboxNode>.empty()) mailboxNode.item.role! : mailboxNode.item }; final mapMailbox = {
for (var presentationMailbox in allMailbox)
final mapMailbox = { for (var presentationMailbox in allMailbox) presentationMailbox.id : presentationMailbox }; presentationMailbox.id: presentationMailbox
};
mailboxDashBoardController.setMapDefaultMailboxId(mapDefaultMailboxId); mailboxDashBoardController.setMapDefaultMailboxId(mapDefaultMailboxId);
@@ -434,8 +444,8 @@ class MailboxController extends BaseMailboxController {
.map((mailbox) => mailbox.toSelectedPresentationMailbox(selectMode: SelectMode.INACTIVE)) .map((mailbox) => mailbox.toSelectedPresentationMailbox(selectMode: SelectMode.INACTIVE))
.toList(); .toList();
} else { } else {
defaultMailboxTree.value.updateNodesUIMode(SelectMode.INACTIVE, ExpandMode.COLLAPSE); defaultMailboxTree.value.updateNodesUIMode(selectMode: SelectMode.INACTIVE);
folderMailboxTree.value.updateNodesUIMode(SelectMode.INACTIVE, ExpandMode.COLLAPSE); folderMailboxTree.value.updateNodesUIMode(selectMode: SelectMode.INACTIVE);
} }
currentSelectMode.value = SelectMode.INACTIVE; currentSelectMode.value = SelectMode.INACTIVE;
} }
@@ -473,12 +483,16 @@ class MailboxController extends BaseMailboxController {
} }
} }
void _openConfirmationDialogDeleteMailboxAction(BuildContext context, PresentationMailbox presentationMailbox) { void _openConfirmationDialogDeleteMailboxAction(BuildContext context,
PresentationMailbox presentationMailbox) {
if (_responsiveUtils.isMobile(context)) { if (_responsiveUtils.isMobile(context)) {
(ConfirmationDialogActionSheetBuilder(context) (ConfirmationDialogActionSheetBuilder(context)
..messageText(AppLocalizations.of(context).message_confirmation_dialog_delete_mailbox(presentationMailbox.name?.name ?? '')) ..messageText(AppLocalizations.of(context)
..onCancelAction(AppLocalizations.of(context).cancel, () => popBack()) .message_confirmation_dialog_delete_mailbox(presentationMailbox.name?.name ?? ''))
..onConfirmAction(AppLocalizations.of(context).delete, () => _deleteMailboxAction(presentationMailbox))) ..onCancelAction(AppLocalizations.of(context).cancel, () =>
popBack())
..onConfirmAction(AppLocalizations.of(context).delete, () =>
_deleteMailboxAction(presentationMailbox)))
.show(); .show();
} else { } else {
showDialog( showDialog(
@@ -487,13 +501,20 @@ class MailboxController extends BaseMailboxController {
builder: (BuildContext context) => PointerInterceptor(child: (ConfirmDialogBuilder(_imagePaths) builder: (BuildContext context) => PointerInterceptor(child: (ConfirmDialogBuilder(_imagePaths)
..key(const Key('confirm_dialog_delete_mailbox')) ..key(const Key('confirm_dialog_delete_mailbox'))
..title(AppLocalizations.of(context).delete_mailboxes) ..title(AppLocalizations.of(context).delete_mailboxes)
..content(AppLocalizations.of(context).message_confirmation_dialog_delete_mailbox(presentationMailbox.name?.name ?? '')) ..content(AppLocalizations.of(context)
..addIcon(SvgPicture.asset(_imagePaths.icRemoveDialog, fit: BoxFit.fill)) .message_confirmation_dialog_delete_mailbox(presentationMailbox.name?.name ?? ''))
..addIcon(SvgPicture.asset(_imagePaths.icRemoveDialog,
fit: BoxFit.fill))
..colorConfirmButton(AppColor.colorConfirmActionDialog) ..colorConfirmButton(AppColor.colorConfirmActionDialog)
..styleTextConfirmButton(const TextStyle(fontSize: 17, fontWeight: FontWeight.w500, color: AppColor.colorActionDeleteConfirmDialog)) ..styleTextConfirmButton(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorActionDeleteConfirmDialog))
..onCloseButtonAction(() => popBack()) ..onCloseButtonAction(() => popBack())
..onConfirmButtonAction(AppLocalizations.of(context).delete, () => _deleteMailboxAction(presentationMailbox)) ..onConfirmButtonAction(AppLocalizations.of(context).delete, () =>
..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack())) _deleteMailboxAction(presentationMailbox))
..onCancelButtonAction(AppLocalizations.of(context).cancel, () =>
popBack()))
.build())); .build()));
} }
} }
@@ -59,7 +59,7 @@ class MailboxTree with EquatableMixin {
return matchedNode; return matchedNode;
} }
void updateNodesUIMode(SelectMode? selectMode, ExpandMode? expandMode) { void updateNodesUIMode({SelectMode? selectMode, ExpandMode? expandMode}) {
if (selectMode == null && expandMode == null) { if (selectMode == null && expandMode == null) {
return; return;
} }