TF-1844 Fix mailbox not selected in advanced search
(cherry picked from commit 5711f01183f335c4446c7f5c870f5aca6d72e82c)
This commit is contained in:
+3
-2
@@ -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)
|
||||||
|
|||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class AdvancedSearchInputFormStyle {
|
||||||
|
static const TextStyle inputTextStyle = TextStyle(
|
||||||
|
color: Colors.black,
|
||||||
|
fontSize: 16,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
);
|
||||||
|
}
|
||||||
+9
@@ -0,0 +1,9 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class TextFieldAutocompleteEmailAddressStyle {
|
||||||
|
static const TextStyle inputTextStyle = TextStyle(
|
||||||
|
color: Colors.black,
|
||||||
|
fontSize: 16,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
);
|
||||||
|
}
|
||||||
+1
-1
@@ -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 {
|
||||||
|
|||||||
+1
-1
@@ -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 {
|
||||||
|
|
||||||
|
|||||||
+14
-11
@@ -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) {
|
||||||
+8
-6
@@ -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,
|
||||||
Reference in New Issue
Block a user