From 3b3da513e4def7ab2d066f1408426eb1b946a158 Mon Sep 17 00:00:00 2001 From: dab246 Date: Wed, 1 Jun 2022 11:11:16 +0700 Subject: [PATCH] TF-599 Preserve the state of the tree after performing actions with the mailbox --- .../presentation/mailbox_controller.dart | 51 +++++++++++++------ .../presentation/model/mailbox_tree.dart | 2 +- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/lib/features/mailbox/presentation/mailbox_controller.dart b/lib/features/mailbox/presentation/mailbox_controller.dart index d3655c2ee..7f99d6fe6 100644 --- a/lib/features/mailbox/presentation/mailbox_controller.dart +++ b/lib/features/mailbox/presentation/mailbox_controller.dart @@ -263,12 +263,22 @@ class MailboxController extends BaseMailboxController { } void _setUpMapMailboxIdDefault(List allMailbox, MailboxTree defaultTree, MailboxTree folderTree) { + final mapDefaultMailboxId = { + for (var mailboxNode + in defaultTree.root.childrenItems ?? List.empty()) + mailboxNode.item.role!: mailboxNode.item.id + }; - final mapDefaultMailboxId = { for (var mailboxNode in defaultTree.root.childrenItems ?? List.empty()) mailboxNode.item.role! : mailboxNode.item.id }; + final mapDefaultMailbox = { + for (var mailboxNode + in defaultTree.root.childrenItems ?? List.empty()) + mailboxNode.item.role!: mailboxNode.item + }; - final mapDefaultMailbox = { for (var mailboxNode in defaultTree.root.childrenItems ?? List.empty()) mailboxNode.item.role! : mailboxNode.item }; - - final mapMailbox = { for (var presentationMailbox in allMailbox) presentationMailbox.id : presentationMailbox }; + final mapMailbox = { + for (var presentationMailbox in allMailbox) + presentationMailbox.id: presentationMailbox + }; mailboxDashBoardController.setMapDefaultMailboxId(mapDefaultMailboxId); @@ -434,8 +444,8 @@ class MailboxController extends BaseMailboxController { .map((mailbox) => mailbox.toSelectedPresentationMailbox(selectMode: SelectMode.INACTIVE)) .toList(); } else { - defaultMailboxTree.value.updateNodesUIMode(SelectMode.INACTIVE, ExpandMode.COLLAPSE); - folderMailboxTree.value.updateNodesUIMode(SelectMode.INACTIVE, ExpandMode.COLLAPSE); + defaultMailboxTree.value.updateNodesUIMode(selectMode: SelectMode.INACTIVE); + folderMailboxTree.value.updateNodesUIMode(selectMode: 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)) { (ConfirmationDialogActionSheetBuilder(context) - ..messageText(AppLocalizations.of(context).message_confirmation_dialog_delete_mailbox(presentationMailbox.name?.name ?? '')) - ..onCancelAction(AppLocalizations.of(context).cancel, () => popBack()) - ..onConfirmAction(AppLocalizations.of(context).delete, () => _deleteMailboxAction(presentationMailbox))) + ..messageText(AppLocalizations.of(context) + .message_confirmation_dialog_delete_mailbox(presentationMailbox.name?.name ?? '')) + ..onCancelAction(AppLocalizations.of(context).cancel, () => + popBack()) + ..onConfirmAction(AppLocalizations.of(context).delete, () => + _deleteMailboxAction(presentationMailbox))) .show(); } else { showDialog( @@ -487,13 +501,20 @@ class MailboxController extends BaseMailboxController { builder: (BuildContext context) => PointerInterceptor(child: (ConfirmDialogBuilder(_imagePaths) ..key(const Key('confirm_dialog_delete_mailbox')) ..title(AppLocalizations.of(context).delete_mailboxes) - ..content(AppLocalizations.of(context).message_confirmation_dialog_delete_mailbox(presentationMailbox.name?.name ?? '')) - ..addIcon(SvgPicture.asset(_imagePaths.icRemoveDialog, fit: BoxFit.fill)) + ..content(AppLocalizations.of(context) + .message_confirmation_dialog_delete_mailbox(presentationMailbox.name?.name ?? '')) + ..addIcon(SvgPicture.asset(_imagePaths.icRemoveDialog, + fit: BoxFit.fill)) ..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()) - ..onConfirmButtonAction(AppLocalizations.of(context).delete, () => _deleteMailboxAction(presentationMailbox)) - ..onCancelButtonAction(AppLocalizations.of(context).cancel, () => popBack())) + ..onConfirmButtonAction(AppLocalizations.of(context).delete, () => + _deleteMailboxAction(presentationMailbox)) + ..onCancelButtonAction(AppLocalizations.of(context).cancel, () => + popBack())) .build())); } } diff --git a/lib/features/mailbox/presentation/model/mailbox_tree.dart b/lib/features/mailbox/presentation/model/mailbox_tree.dart index 1e70b43f4..13496e14a 100644 --- a/lib/features/mailbox/presentation/model/mailbox_tree.dart +++ b/lib/features/mailbox/presentation/model/mailbox_tree.dart @@ -59,7 +59,7 @@ class MailboxTree with EquatableMixin { return matchedNode; } - void updateNodesUIMode(SelectMode? selectMode, ExpandMode? expandMode) { + void updateNodesUIMode({SelectMode? selectMode, ExpandMode? expandMode}) { if (selectMode == null && expandMode == null) { return; }