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
Widget build(BuildContext context) {
return Column(
children: [
_buildSuggestionFilterField(
listTagSelected: controller.searchEmailFilter.from,
context: context,
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,
return FocusTraversalGroup(
child: Column(
children: [
_buildSuggestionFilterField(
listTagSelected: controller.searchEmailFilter.from,
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)
],
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,
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,
readOnly: isSelectFormList,
mouseCursor: mouseCursor,
textInputAction: TextInputAction.next,
textInputAction: isSelectFormList ? TextInputAction.done : TextInputAction.next,
onTap: onTap,
onSubmitted: (value) {
if (isSelectFormList) {
onTap?.call();
} else {
FocusScope.of(context).unfocus();
}
},
decoration: InputDecoration(
filled: true,
fillColor: isSelectFormList ? AppColor.colorItemSelected : Colors.white,
@@ -188,6 +188,9 @@ class _TextFieldAutoCompleteEmailAddressState
onSubmitted: (tag) {
if (tag.trim().isNotEmpty) {
onSubmitted?.call(tag);
fn.requestFocus();
} else {
FocusScope.of(context).unfocus();
}
},
),