TF-1310: [Presentation] Refactor buildTree logic in TreeBuilder + BaseMailboxController
This commit is contained in:
@@ -110,6 +110,7 @@ class DestinationPickerController extends BaseMailboxController {
|
||||
mailboxAction.value = arguments!.mailboxAction;
|
||||
mailboxIdSelected = arguments!.mailboxIdSelected;
|
||||
accountId = arguments!.accountId;
|
||||
_session = arguments!.session;
|
||||
getAllMailboxAction();
|
||||
}
|
||||
}
|
||||
@@ -175,9 +176,9 @@ class DestinationPickerController extends BaseMailboxController {
|
||||
mailboxCategoriesExpandMode.value.defaultMailbox = newExpandMode;
|
||||
mailboxCategoriesExpandMode.refresh();
|
||||
break;
|
||||
case MailboxCategories.folders:
|
||||
final newExpandMode = mailboxCategoriesExpandMode.value.folderMailbox == ExpandMode.EXPAND ? ExpandMode.COLLAPSE : ExpandMode.EXPAND;
|
||||
mailboxCategoriesExpandMode.value.folderMailbox = newExpandMode;
|
||||
case MailboxCategories.personalMailboxes:
|
||||
final newExpandMode = mailboxCategoriesExpandMode.value.personalMailboxes == ExpandMode.EXPAND ? ExpandMode.COLLAPSE : ExpandMode.EXPAND;
|
||||
mailboxCategoriesExpandMode.value.personalMailboxes = newExpandMode;
|
||||
mailboxCategoriesExpandMode.refresh();
|
||||
break;
|
||||
default:
|
||||
@@ -235,7 +236,7 @@ class DestinationPickerController extends BaseMailboxController {
|
||||
if (mailboxDestination.value == null ||
|
||||
mailboxDestination.value == PresentationMailbox.unifiedMailbox) {
|
||||
final allChildrenAtMailboxLocation = (defaultMailboxTree.value.root.childrenItems ?? <MailboxNode>[]) +
|
||||
(folderMailboxTree.value.root.childrenItems ?? <MailboxNode>[]);
|
||||
(personalMailboxTree.value.root.childrenItems ?? <MailboxNode>[]);
|
||||
if (allChildrenAtMailboxLocation.isNotEmpty) {
|
||||
listMailboxNameAsStringExist = allChildrenAtMailboxLocation
|
||||
.where((mailboxNode) => mailboxNode.nameNotEmpty)
|
||||
|
||||
@@ -224,11 +224,11 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
|
||||
actions,
|
||||
mailboxIdSelected)
|
||||
: const SizedBox.shrink()),
|
||||
Obx(() => controller.folderMailboxHasChild
|
||||
Obx(() => controller.personalMailboxHasChild
|
||||
? _buildMailboxCategory(
|
||||
context,
|
||||
MailboxCategories.folders,
|
||||
controller.folderRootNode,
|
||||
MailboxCategories.personalMailboxes,
|
||||
controller.personalRootNode,
|
||||
actions,
|
||||
mailboxIdSelected)
|
||||
: const SizedBox.shrink()),
|
||||
|
||||
+12
-2
@@ -1,6 +1,7 @@
|
||||
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||
|
||||
@@ -8,9 +9,18 @@ class DestinationPickerArguments with EquatableMixin {
|
||||
final AccountId accountId;
|
||||
final MailboxActions mailboxAction;
|
||||
final MailboxId? mailboxIdSelected;
|
||||
final Session? session;
|
||||
|
||||
DestinationPickerArguments(this.accountId, this.mailboxAction, {this.mailboxIdSelected});
|
||||
DestinationPickerArguments(
|
||||
this.accountId,
|
||||
this.mailboxAction,
|
||||
this.session,
|
||||
{this.mailboxIdSelected});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [accountId, mailboxAction, mailboxIdSelected];
|
||||
List<Object?> get props => [
|
||||
accountId,
|
||||
mailboxAction,
|
||||
mailboxIdSelected,
|
||||
session];
|
||||
}
|
||||
Reference in New Issue
Block a user