TF-1844 Fix mailbox not selected in advanced search

(cherry picked from commit 5711f01183f335c4446c7f5c870f5aca6d72e82c)
This commit is contained in:
dab246
2023-08-23 19:11:46 +07:00
committed by Dat Vu
parent d6a4d437b3
commit 20c95caf0e
7 changed files with 45 additions and 21 deletions
@@ -131,12 +131,13 @@ class AdvancedFilterController extends BaseController {
void selectedMailBox(BuildContext context) async { void selectedMailBox(BuildContext context) async {
final accountId = _mailboxDashBoardController.accountId.value; final accountId = _mailboxDashBoardController.accountId.value;
final session = _mailboxDashBoardController.sessionCurrent; final session = _mailboxDashBoardController.sessionCurrent;
if (accountId != null) { if (accountId != null && session != null) {
final arguments = DestinationPickerArguments( final arguments = DestinationPickerArguments(
accountId, accountId,
MailboxActions.select, MailboxActions.select,
session, session,
mailboxIdSelected: searchController.searchEmailFilter.value.mailbox?.id); mailboxIdSelected: _destinationMailboxSelected?.id
);
final destinationMailbox = PlatformInfo.isWeb final destinationMailbox = PlatformInfo.isWeb
? await DialogRouter.pushGeneralDialog(routeName: AppRoutes.destinationPicker, arguments: arguments) ? await DialogRouter.pushGeneralDialog(routeName: AppRoutes.destinationPicker, arguments: arguments)
@@ -0,0 +1,9 @@
import 'package:flutter/material.dart';
class AdvancedSearchInputFormStyle {
static const TextStyle inputTextStyle = TextStyle(
color: Colors.black,
fontSize: 16,
fontWeight: FontWeight.w400,
);
}
@@ -0,0 +1,9 @@
import 'package:flutter/material.dart';
class TextFieldAutocompleteEmailAddressStyle {
static const TextStyle inputTextStyle = TextStyle(
color: Colors.black,
fontSize: 16,
fontWeight: FontWeight.w400,
);
}
@@ -2,7 +2,7 @@ import 'package:core/core.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.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'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
Future<void> showAdvancedSearchFilterBottomSheet(BuildContext context) async { Future<void> showAdvancedSearchFilterBottomSheet(BuildContext context) async {
@@ -3,7 +3,7 @@ import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:pointer_interceptor/pointer_interceptor.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 { class AdvancedSearchFilterOverlay extends StatelessWidget {
@@ -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/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/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/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/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/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/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart';
@@ -66,14 +67,15 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
nextFocusNode: controller.focusManager.mailboxFieldFocusNode, nextFocusNode: controller.focusManager.mailboxFieldFocusNode,
), ),
_buildFilterField( _buildFilterField(
textEditingController: controller.mailBoxFilterInputController, textEditingController: controller.mailBoxFilterInputController,
context: context, context: context,
advancedSearchFilterField: AdvancedSearchFilterField.mailBox, advancedSearchFilterField: AdvancedSearchFilterField.mailBox,
isSelectFormList: true, isSelectFormList: true,
currentFocusNode: controller.focusManager.mailboxFieldFocusNode, currentFocusNode: controller.focusManager.mailboxFieldFocusNode,
nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode, nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode,
mouseCursor: SystemMouseCursors.click, mouseCursor: SystemMouseCursors.click,
onTap: () => controller.selectedMailBox(context)), onTap: () => controller.selectedMailBox(context)
),
Row(children: [ Row(children: [
Expanded(child: _buildFilterField( Expanded(child: _buildFilterField(
context: context, context: context,
@@ -253,7 +255,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
), ),
const Padding(padding: EdgeInsets.all(4)), const Padding(padding: EdgeInsets.all(4)),
_responsiveUtils.isMobile(context) || _responsiveUtils.landscapeTabletSupported(context) _responsiveUtils.isMobile(context) || _responsiveUtils.landscapeTabletSupported(context)
? TextFieldAutoCompleteEmailAddress( ? TextFieldAutocompleteEmailAddress(
optionsBuilder: controller.getAutoCompleteSuggestion, optionsBuilder: controller.getAutoCompleteSuggestion,
advancedSearchFilterField: advancedSearchFilterField, advancedSearchFilterField: advancedSearchFilterField,
initialTags: listTagInitial, initialTags: listTagInitial,
@@ -289,7 +291,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
}, },
) )
: Expanded( : Expanded(
child: TextFieldAutoCompleteEmailAddress( child: TextFieldAutocompleteEmailAddress(
optionsBuilder: controller.getAutoCompleteSuggestion, optionsBuilder: controller.getAutoCompleteSuggestion,
advancedSearchFilterField: advancedSearchFilterField, advancedSearchFilterField: advancedSearchFilterField,
initialTags: listTagInitial, initialTags: listTagInitial,
@@ -363,6 +365,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
mouseCursor: mouseCursor, mouseCursor: mouseCursor,
maxLines: 1, maxLines: 1,
textInputAction: isSelectFormList ? TextInputAction.done : TextInputAction.next, textInputAction: isSelectFormList ? TextInputAction.done : TextInputAction.next,
textStyle: AdvancedSearchInputFormStyle.inputTextStyle,
onTap: onTap, onTap: onTap,
onTextSubmitted: (value) { onTextSubmitted: (value) {
if (isSelectFormList) { if (isSelectFormList) {
@@ -10,12 +10,13 @@ import 'package:model/extensions/email_address_extension.dart';
import 'package:textfield_tags/textfield_tags.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/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/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_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/features/mailbox_dashboard/presentation/widgets/advanced_search/autocomplete_tag_item_widget.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
class TextFieldAutoCompleteEmailAddress extends StatefulWidget { class TextFieldAutocompleteEmailAddress extends StatefulWidget {
const TextFieldAutoCompleteEmailAddress({ const TextFieldAutocompleteEmailAddress({
Key? key, Key? key,
required this.advancedSearchFilterField, required this.advancedSearchFilterField,
required this.initialTags, required this.initialTags,
@@ -36,12 +37,12 @@ class TextFieldAutoCompleteEmailAddress extends StatefulWidget {
final FocusNode? nextFocusNode; final FocusNode? nextFocusNode;
@override @override
State<TextFieldAutoCompleteEmailAddress> createState() => State<TextFieldAutocompleteEmailAddress> createState() =>
_TextFieldAutoCompleteEmailAddressState(); _TextFieldAutocompleteEmailAddressState();
} }
class _TextFieldAutoCompleteEmailAddressState class _TextFieldAutocompleteEmailAddressState
extends State<TextFieldAutoCompleteEmailAddress> { extends State<TextFieldAutocompleteEmailAddress> {
final double _distanceToField = 380; final double _distanceToField = 380;
final _responsiveUtils = Get.find<ResponsiveUtils>(); final _responsiveUtils = Get.find<ResponsiveUtils>();
late CustomController _controller; late CustomController _controller;
@@ -138,6 +139,7 @@ class _TextFieldAutoCompleteEmailAddressState
focusNode: fn, focusNode: fn,
textInputAction: TextInputAction.next, textInputAction: TextInputAction.next,
maxLines: 1, maxLines: 1,
textStyle: TextFieldAutocompleteEmailAddressStyle.inputTextStyle,
decoration: InputDecoration( decoration: InputDecoration(
filled: true, filled: true,
fillColor: Colors.white, fillColor: Colors.white,