From 4ca6b6fc3688cf8cc3d15d3ec573cbdfad901832 Mon Sep 17 00:00:00 2001 From: dab246 Date: Fri, 2 Jan 2026 17:51:09 +0700 Subject: [PATCH 1/8] TF-4229 Add widget for label search field --- lib/features/base/model/filter_filter.dart | 5 + .../email/presentation/email_view.dart | 10 +- .../presentation/base_mailbox_view.dart | 11 +- .../advanced_filter_controller.dart | 2 + .../mailbox_dashboard_controller.dart | 8 +- ...te_label_in_advanced_search_extension.dart | 12 ++ .../labels/handle_logic_label_extension.dart | 18 +++ .../styles/label_drop_down_style.dart | 42 ++++++ .../advanced_search_field_widget.dart | 14 +- .../advanced_search_input_form.dart | 27 ++++ .../label_drop_down_button.dart | 123 ++++++++++++++++++ .../email/presentation/search_email_view.dart | 8 +- .../thread/presentation/thread_view.dart | 10 +- .../presentation/thread_detail_view.dart | 10 +- lib/l10n/intl_messages.arb | 6 + lib/main/localizations/app_localizations.dart | 7 + 16 files changed, 272 insertions(+), 41 deletions(-) create mode 100644 lib/features/mailbox_dashboard/presentation/extensions/advanced_search/update_label_in_advanced_search_extension.dart create mode 100644 lib/features/mailbox_dashboard/presentation/extensions/labels/handle_logic_label_extension.dart create mode 100644 lib/features/mailbox_dashboard/presentation/styles/label_drop_down_style.dart create mode 100644 lib/features/mailbox_dashboard/presentation/widgets/advanced_search/label_drop_down_button.dart diff --git a/lib/features/base/model/filter_filter.dart b/lib/features/base/model/filter_filter.dart index 04801db2c5..672a4498c8 100644 --- a/lib/features/base/model/filter_filter.dart +++ b/lib/features/base/model/filter_filter.dart @@ -13,6 +13,7 @@ enum FilterField { mailBox, date, sortBy, + labels, hasAttachment, deletionDate, receptionDate, @@ -49,6 +50,8 @@ enum FilterField { return appLocalizations.headerRecipients; case FilterField.sender: return appLocalizations.sender; + case FilterField.labels: + return appLocalizations.labels; default: return ''; } @@ -77,6 +80,8 @@ enum FilterField { case FilterField.recipients: case FilterField.sender: return appLocalizations.addAnEmailAddress; + case FilterField.labels: + return appLocalizations.allLabels; default: return ''; } diff --git a/lib/features/email/presentation/email_view.dart b/lib/features/email/presentation/email_view.dart index 058fb34d46..2d3fd21408 100644 --- a/lib/features/email/presentation/email_view.dart +++ b/lib/features/email/presentation/email_view.dart @@ -41,6 +41,7 @@ import 'package:tmail_ui_user/features/email/presentation/widgets/information_se import 'package:tmail_ui_user/features/email/presentation/widgets/mail_unsubscribed_banner.dart'; import 'package:tmail_ui_user/features/email/presentation/widgets/view_entire_message_with_message_clipped_widget.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_open_context_menu_extension.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/labels/handle_logic_label_extension.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/verify_display_overlay_view_on_iframe_extension.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/extensions/vacation_response_extension.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/vacation/widgets/vacation_notification_message_widget.dart'; @@ -258,18 +259,15 @@ class EmailView extends GetWidget { children: [ if (!isInsideThreadDetailView || isFirstEmailInThreadDetail) Obx(() { - final isLabelCapabilitySupported = controller - .mailboxDashBoardController.isLabelCapabilitySupported; + final isLabelAvailable = controller + .mailboxDashBoardController.isLabelAvailable; final labelController = controller.mailboxDashBoardController.labelController; - final isLabelSettingEnabled = - labelController.isLabelSettingEnabled.isTrue; - List