TF-1844 Fix system auto open a email when press enter in advanced search

(cherry picked from commit 2f1e73e707bb001d5cbb9423dc6c7a2c7411f71f)
This commit is contained in:
dab246
2023-05-18 18:37:54 +07:00
committed by Dat Vu
parent 4aaebfb09c
commit 1e3b96703a
2 changed files with 85 additions and 73 deletions
@@ -24,79 +24,81 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Column( return FocusTraversalGroup(
children: [ child: Column(
_buildSuggestionFilterField( children: [
listTagSelected: controller.searchEmailFilter.from, _buildSuggestionFilterField(
context: context, listTagSelected: controller.searchEmailFilter.from,
advancedSearchFilterField: AdvancedSearchFilterField.form,
listTagInitial: controller.searchEmailFilter.from,
currentFocusNode: controller.focusManager.fromFieldFocusNode,
nextFocusNode: controller.focusManager.toFieldFocusNode
),
_buildSuggestionFilterField(
listTagSelected: controller.searchEmailFilter.to,
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.to,
listTagInitial: controller.searchEmailFilter.to,
currentFocusNode: controller.focusManager.toFieldFocusNode,
nextFocusNode: controller.focusManager.subjectFieldFocusNode
),
_buildFilterField(
textEditingController: controller.subjectFilterInputController,
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.subject,
currentFocusNode: controller.focusManager.subjectFieldFocusNode,
nextFocusNode: controller.focusManager.hasKeywordFieldFocusNode
),
_buildFilterField(
textEditingController: controller.hasKeyWordFilterInputController,
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.hasKeyword,
currentFocusNode: controller.focusManager.hasKeywordFieldFocusNode,
nextFocusNode: controller.focusManager.notKeywordFieldFocusNode
),
_buildFilterField(
textEditingController: controller.notKeyWordFilterInputController,
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.notKeyword,
currentFocusNode: controller.focusManager.notKeywordFieldFocusNode,
nextFocusNode: controller.focusManager.mailboxFieldFocusNode,
),
_buildFilterField(
textEditingController: controller.mailBoxFilterInputController,
context: context, context: context,
advancedSearchFilterField: AdvancedSearchFilterField.mailBox, advancedSearchFilterField: AdvancedSearchFilterField.form,
isSelectFormList: true, listTagInitial: controller.searchEmailFilter.from,
currentFocusNode: controller.focusManager.mailboxFieldFocusNode, currentFocusNode: controller.focusManager.fromFieldFocusNode,
nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode, nextFocusNode: controller.focusManager.toFieldFocusNode
mouseCursor: SystemMouseCursors.click, ),
onTap: () => controller.selectedMailBox(context)), _buildSuggestionFilterField(
Row(children: [ listTagSelected: controller.searchEmailFilter.to,
Expanded(child: _buildFilterField( context: context,
context: context, advancedSearchFilterField: AdvancedSearchFilterField.to,
advancedSearchFilterField: AdvancedSearchFilterField.date, listTagInitial: controller.searchEmailFilter.to,
isSelectFormList: true, currentFocusNode: controller.focusManager.toFieldFocusNode,
onTap: () { nextFocusNode: controller.focusManager.subjectFieldFocusNode
openContextMenuAction( ),
context, _buildFilterField(
_buildEmailReceiveTimeTypeActionTiles(context), textEditingController: controller.subjectFilterInputController,
); context: context,
}, advancedSearchFilterField: AdvancedSearchFilterField.subject,
)), currentFocusNode: controller.focusManager.subjectFieldFocusNode,
const SizedBox(width: 10), nextFocusNode: controller.focusManager.hasKeywordFieldFocusNode
buildIconWeb( ),
icon: SvgPicture.asset( _buildFilterField(
_imagePaths.icCalendarSB, textEditingController: controller.hasKeyWordFilterInputController,
width: 24, context: context,
height: 24, advancedSearchFilterField: AdvancedSearchFilterField.hasKeyword,
fit: BoxFit.fill), currentFocusNode: controller.focusManager.hasKeywordFieldFocusNode,
tooltip: AppLocalizations.of(context).selectDate, nextFocusNode: controller.focusManager.notKeywordFieldFocusNode
iconPadding: EdgeInsets.zero, ),
onTap: () => controller.selectDateRange(context)), _buildFilterField(
]), textEditingController: controller.notKeyWordFilterInputController,
AdvancedSearchFilterFormBottomView(focusManager: controller.focusManager) context: context,
], advancedSearchFilterField: AdvancedSearchFilterField.notKeyword,
currentFocusNode: controller.focusManager.notKeywordFieldFocusNode,
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)),
Row(children: [
Expanded(child: _buildFilterField(
context: context,
advancedSearchFilterField: AdvancedSearchFilterField.date,
isSelectFormList: true,
onTap: () {
openContextMenuAction(
context,
_buildEmailReceiveTimeTypeActionTiles(context),
);
},
)),
const SizedBox(width: 10),
buildIconWeb(
icon: SvgPicture.asset(
_imagePaths.icCalendarSB,
width: 24,
height: 24,
fit: BoxFit.fill),
tooltip: AppLocalizations.of(context).selectDate,
iconPadding: EdgeInsets.zero,
onTap: () => controller.selectDateRange(context)),
]),
AdvancedSearchFilterFormBottomView(focusManager: controller.focusManager)
],
),
); );
} }
@@ -358,8 +360,15 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
controller: textEditingController, controller: textEditingController,
readOnly: isSelectFormList, readOnly: isSelectFormList,
mouseCursor: mouseCursor, mouseCursor: mouseCursor,
textInputAction: TextInputAction.next, textInputAction: isSelectFormList ? TextInputAction.done : TextInputAction.next,
onTap: onTap, onTap: onTap,
onSubmitted: (value) {
if (isSelectFormList) {
onTap?.call();
} else {
FocusScope.of(context).unfocus();
}
},
decoration: InputDecoration( decoration: InputDecoration(
filled: true, filled: true,
fillColor: isSelectFormList ? AppColor.colorItemSelected : Colors.white, fillColor: isSelectFormList ? AppColor.colorItemSelected : Colors.white,
@@ -188,6 +188,9 @@ class _TextFieldAutoCompleteEmailAddressState
onSubmitted: (tag) { onSubmitted: (tag) {
if (tag.trim().isNotEmpty) { if (tag.trim().isNotEmpty) {
onSubmitted?.call(tag); onSubmitted?.call(tag);
fn.requestFocus();
} else {
FocusScope.of(context).unfocus();
} }
}, },
), ),