From f5c4c1007299e8e90753cc29bf5ee7f8788ec06d Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 14 Feb 2023 12:03:23 +0700 Subject: [PATCH] TF-1437 Only show subscribed mailbox in destination picker --- .../presentation/destination_picker_controller.dart | 10 +++++++--- .../mailbox/presentation/mailbox_controller.dart | 4 ++-- .../list_presentation_mailbox_extension.dart | 8 ++++++++ model/lib/model.dart | 1 + 4 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 model/lib/extensions/list_presentation_mailbox_extension.dart diff --git a/lib/features/destination_picker/presentation/destination_picker_controller.dart b/lib/features/destination_picker/presentation/destination_picker_controller.dart index 0df5f8949..243028f01 100644 --- a/lib/features/destination_picker/presentation/destination_picker_controller.dart +++ b/lib/features/destination_picker/presentation/destination_picker_controller.dart @@ -18,6 +18,7 @@ import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; import 'package:jmap_dart_client/jmap/core/state.dart' as jmap; import 'package:model/mailbox/expand_mode.dart'; import 'package:model/mailbox/presentation_mailbox.dart'; +import 'package:model/model.dart'; import 'package:tmail_ui_user/features/base/base_mailbox_controller.dart'; import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart'; import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_screen_type.dart'; @@ -124,12 +125,15 @@ class DestinationPickerController extends BaseMailboxController { newState.map((success) { if (success is GetAllMailboxSuccess) { if (mailboxAction.value == MailboxActions.move && mailboxIdSelected != null) { - buildTree(success.mailboxList, mailboxIdSelected: mailboxIdSelected); + buildTree( + success.mailboxList.listSubscribedMailboxes, + mailboxIdSelected: mailboxIdSelected + ); } else { - buildTree(success.mailboxList); + buildTree(success.mailboxList.listSubscribedMailboxes); } } else if (success is RefreshChangesAllMailboxSuccess) { - refreshTree(success.mailboxList); + refreshTree(success.mailboxList.listSubscribedMailboxes); } }); } diff --git a/lib/features/mailbox/presentation/mailbox_controller.dart b/lib/features/mailbox/presentation/mailbox_controller.dart index 53a5657b5..18fb95870 100644 --- a/lib/features/mailbox/presentation/mailbox_controller.dart +++ b/lib/features/mailbox/presentation/mailbox_controller.dart @@ -981,12 +981,12 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM } void _buildMailboxTreeHasSubscribed(List mailboxList) async { - final _mailboxList = mailboxList.where((mailbox) => mailbox.isSubscribed?.value == true).toList(); + final _mailboxList = mailboxList.listSubscribedMailboxes; await buildTree(_mailboxList); } void _refreshMailboxTreeHasSubscribed(List mailboxList) async { - final _mailboxList = mailboxList.where((mailbox) => mailbox.isSubscribed?.value == true).toList(); + final _mailboxList = mailboxList.listSubscribedMailboxes; await refreshTree(_mailboxList); } diff --git a/model/lib/extensions/list_presentation_mailbox_extension.dart b/model/lib/extensions/list_presentation_mailbox_extension.dart new file mode 100644 index 000000000..5b0950fb9 --- /dev/null +++ b/model/lib/extensions/list_presentation_mailbox_extension.dart @@ -0,0 +1,8 @@ + +import 'package:model/mailbox/presentation_mailbox.dart'; + +extension ListPresentationMailboxExtension on List { + + List get listSubscribedMailboxes => + where((mailbox) => mailbox.supportedSubscribe).toList(); +} \ No newline at end of file diff --git a/model/lib/model.dart b/model/lib/model.dart index edd744e7b..211441601 100644 --- a/model/lib/model.dart +++ b/model/lib/model.dart @@ -53,6 +53,7 @@ export 'extensions/utc_date_extension.dart'; export 'extensions/email_filter_condition_extension.dart'; export 'extensions/list_email_header_extension.dart'; export 'extensions/account_extension.dart'; +export 'extensions/list_presentation_mailbox_extension.dart'; // Identity export 'identity/identity_request_dto.dart'; export 'mailbox/expand_mode.dart';