From 20c95caf0e298a6478a7b58052a3fd2264942e5d Mon Sep 17 00:00:00 2001 From: dab246 Date: Wed, 23 Aug 2023 19:11:46 +0700 Subject: [PATCH] TF-1844 Fix mailbox not selected in advanced search (cherry picked from commit 5711f01183f335c4446c7f5c870f5aca6d72e82c) --- .../advanced_filter_controller.dart | 5 ++-- .../advanced_search_input_form_style.dart | 9 +++++++ ...ield_autocomplete_email_address_style.dart | 9 +++++++ .../advanced_search_filter_bottom_sheet.dart | 2 +- .../advanced_search_filter_overlay.dart | 2 +- ...m.dart => advanced_search_input_form.dart} | 25 +++++++++++-------- ...text_field_autocomplete_email_adress.dart} | 14 ++++++----- 7 files changed, 45 insertions(+), 21 deletions(-) create mode 100644 lib/features/mailbox_dashboard/presentation/styles/advanced_search_input_form_style.dart create mode 100644 lib/features/mailbox_dashboard/presentation/styles/text_field_autocomplete_email_address_style.dart rename lib/features/mailbox_dashboard/presentation/widgets/advanced_search/{advanced_search_filter_form.dart => advanced_search_input_form.dart} (95%) rename lib/features/mailbox_dashboard/presentation/widgets/advanced_search/{text_field_auto_complete_email_adress.dart => text_field_autocomplete_email_adress.dart} (94%) diff --git a/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart index ba60e2bc0..8e37f0596 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart @@ -131,12 +131,13 @@ class AdvancedFilterController extends BaseController { void selectedMailBox(BuildContext context) async { final accountId = _mailboxDashBoardController.accountId.value; final session = _mailboxDashBoardController.sessionCurrent; - if (accountId != null) { + if (accountId != null && session != null) { final arguments = DestinationPickerArguments( accountId, MailboxActions.select, session, - mailboxIdSelected: searchController.searchEmailFilter.value.mailbox?.id); + mailboxIdSelected: _destinationMailboxSelected?.id + ); final destinationMailbox = PlatformInfo.isWeb ? await DialogRouter.pushGeneralDialog(routeName: AppRoutes.destinationPicker, arguments: arguments) diff --git a/lib/features/mailbox_dashboard/presentation/styles/advanced_search_input_form_style.dart b/lib/features/mailbox_dashboard/presentation/styles/advanced_search_input_form_style.dart new file mode 100644 index 000000000..ea6833647 --- /dev/null +++ b/lib/features/mailbox_dashboard/presentation/styles/advanced_search_input_form_style.dart @@ -0,0 +1,9 @@ +import 'package:flutter/material.dart'; + +class AdvancedSearchInputFormStyle { + static const TextStyle inputTextStyle = TextStyle( + color: Colors.black, + fontSize: 16, + fontWeight: FontWeight.w400, + ); +} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/presentation/styles/text_field_autocomplete_email_address_style.dart b/lib/features/mailbox_dashboard/presentation/styles/text_field_autocomplete_email_address_style.dart new file mode 100644 index 000000000..75290d2bc --- /dev/null +++ b/lib/features/mailbox_dashboard/presentation/styles/text_field_autocomplete_email_address_style.dart @@ -0,0 +1,9 @@ +import 'package:flutter/material.dart'; + +class TextFieldAutocompleteEmailAddressStyle { + static const TextStyle inputTextStyle = TextStyle( + color: Colors.black, + fontSize: 16, + fontWeight: FontWeight.w400, + ); +} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_bottom_sheet.dart b/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_bottom_sheet.dart index f06f1cfbf..1a0f2d0ab 100644 --- a/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_bottom_sheet.dart +++ b/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_bottom_sheet.dart @@ -2,7 +2,7 @@ import 'package:core/core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_form.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_input_form.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; Future showAdvancedSearchFilterBottomSheet(BuildContext context) async { diff --git a/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_overlay.dart b/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_overlay.dart index ad5a6bdfa..eabb06977 100644 --- a/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_overlay.dart +++ b/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_overlay.dart @@ -3,7 +3,7 @@ import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:pointer_interceptor/pointer_interceptor.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_form.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_input_form.dart'; class AdvancedSearchFilterOverlay extends StatelessWidget { diff --git a/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_form.dart b/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_input_form.dart similarity index 95% rename from lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_form.dart rename to lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_input_form.dart index 7e9468315..8cc6d4f0b 100644 --- a/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_form.dart +++ b/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_input_form.dart @@ -8,9 +8,10 @@ import 'package:tmail_ui_user/features/base/widget/popup_item_no_icon_widget.dar import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/advanced_search_filter.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/styles/advanced_search_input_form_style.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_form_bottom_view.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/date_drop_down_button.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/text_field_auto_complete_email_adress.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/text_field_autocomplete_email_adress.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; @@ -66,14 +67,15 @@ class AdvancedSearchInputForm extends GetWidget nextFocusNode: controller.focusManager.mailboxFieldFocusNode, ), _buildFilterField( - textEditingController: controller.mailBoxFilterInputController, - context: context, - advancedSearchFilterField: AdvancedSearchFilterField.mailBox, - isSelectFormList: true, - currentFocusNode: controller.focusManager.mailboxFieldFocusNode, - nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode, - mouseCursor: SystemMouseCursors.click, - onTap: () => controller.selectedMailBox(context)), + textEditingController: controller.mailBoxFilterInputController, + context: context, + advancedSearchFilterField: AdvancedSearchFilterField.mailBox, + isSelectFormList: true, + currentFocusNode: controller.focusManager.mailboxFieldFocusNode, + nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode, + mouseCursor: SystemMouseCursors.click, + onTap: () => controller.selectedMailBox(context) + ), Row(children: [ Expanded(child: _buildFilterField( context: context, @@ -253,7 +255,7 @@ class AdvancedSearchInputForm extends GetWidget ), const Padding(padding: EdgeInsets.all(4)), _responsiveUtils.isMobile(context) || _responsiveUtils.landscapeTabletSupported(context) - ? TextFieldAutoCompleteEmailAddress( + ? TextFieldAutocompleteEmailAddress( optionsBuilder: controller.getAutoCompleteSuggestion, advancedSearchFilterField: advancedSearchFilterField, initialTags: listTagInitial, @@ -289,7 +291,7 @@ class AdvancedSearchInputForm extends GetWidget }, ) : Expanded( - child: TextFieldAutoCompleteEmailAddress( + child: TextFieldAutocompleteEmailAddress( optionsBuilder: controller.getAutoCompleteSuggestion, advancedSearchFilterField: advancedSearchFilterField, initialTags: listTagInitial, @@ -363,6 +365,7 @@ class AdvancedSearchInputForm extends GetWidget mouseCursor: mouseCursor, maxLines: 1, textInputAction: isSelectFormList ? TextInputAction.done : TextInputAction.next, + textStyle: AdvancedSearchInputFormStyle.inputTextStyle, onTap: onTap, onTextSubmitted: (value) { if (isSelectFormList) { diff --git a/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/text_field_auto_complete_email_adress.dart b/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/text_field_autocomplete_email_adress.dart similarity index 94% rename from lib/features/mailbox_dashboard/presentation/widgets/advanced_search/text_field_auto_complete_email_adress.dart rename to lib/features/mailbox_dashboard/presentation/widgets/advanced_search/text_field_autocomplete_email_adress.dart index 5ef578fcc..891cd897e 100644 --- a/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/text_field_auto_complete_email_adress.dart +++ b/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/text_field_autocomplete_email_adress.dart @@ -10,12 +10,13 @@ import 'package:model/extensions/email_address_extension.dart'; import 'package:textfield_tags/textfield_tags.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/advanced_search_filter.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/custom_tf_tag_controller.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/styles/text_field_autocomplete_email_address_style.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/autocomplete_suggestion_item_widget.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/autocomplete_tag_item_widget.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; -class TextFieldAutoCompleteEmailAddress extends StatefulWidget { - const TextFieldAutoCompleteEmailAddress({ +class TextFieldAutocompleteEmailAddress extends StatefulWidget { + const TextFieldAutocompleteEmailAddress({ Key? key, required this.advancedSearchFilterField, required this.initialTags, @@ -36,12 +37,12 @@ class TextFieldAutoCompleteEmailAddress extends StatefulWidget { final FocusNode? nextFocusNode; @override - State createState() => - _TextFieldAutoCompleteEmailAddressState(); + State createState() => + _TextFieldAutocompleteEmailAddressState(); } -class _TextFieldAutoCompleteEmailAddressState - extends State { +class _TextFieldAutocompleteEmailAddressState + extends State { final double _distanceToField = 380; final _responsiveUtils = Get.find(); late CustomController _controller; @@ -138,6 +139,7 @@ class _TextFieldAutoCompleteEmailAddressState focusNode: fn, textInputAction: TextInputAction.next, maxLines: 1, + textStyle: TextFieldAutocompleteEmailAddressStyle.inputTextStyle, decoration: InputDecoration( filled: true, fillColor: Colors.white,