TF-1844 Fix system auto open a email when press enter in advanced search
(cherry picked from commit 2f1e73e707bb001d5cbb9423dc6c7a2c7411f71f)
This commit is contained in:
+82
-73
@@ -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,
|
||||||
|
|||||||
+3
@@ -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();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user