TF-1155 Call the search action when pressing enter on the keyboard

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit c8eb9c484f3b421a2555a4541e05ef81b15c41fe)
This commit is contained in:
dab246
2023-11-08 17:00:55 +07:00
committed by Dat Vu
parent f13bc5de61
commit 0c74d81031
3 changed files with 19 additions and 2 deletions
@@ -266,9 +266,13 @@ class AdvancedFilterController extends BaseController {
hasAttachment.value = searchEmailFilter.hasAttachment;
if (searchEmailFilter.from.isEmpty) {
listFromEmailAddress.clear();
} else {
fromAddressExpandMode.value = ExpandMode.COLLAPSE;
}
if (searchEmailFilter.to.isEmpty) {
listToEmailAddress.clear();
} else {
toAddressExpandMode.value = ExpandMode.COLLAPSE;
}
}
@@ -476,6 +480,11 @@ class AdvancedFilterController extends BaseController {
listFromEmailAddress = List.from(listEmailAddress);
}
void onSearchAction(BuildContext context) {
FocusScope.of(context).unfocus();
applyAdvancedSearchFilter(context);
}
@override
void onClose() {
_removeFocusListener();
@@ -40,6 +40,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
onShowFullListEmailAddressAction: controller.showFullEmailAddress,
onUpdateListEmailAddressAction: controller.updateListEmailAddress,
onSuggestionEmailAddress: controller.getAutoCompleteSuggestion,
onSearchAction: () => controller.onSearchAction.call(context),
)),
Obx(() => TextFieldAutocompleteEmailAddressWeb(
field: AdvancedSearchFilterField.to,
@@ -52,6 +53,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
onShowFullListEmailAddressAction: controller.showFullEmailAddress,
onUpdateListEmailAddressAction: controller.updateListEmailAddress,
onSuggestionEmailAddress: controller.getAutoCompleteSuggestion,
onSearchAction: () => controller.onSearchAction.call(context),
)),
_buildFilterField(
textEditingController: controller.subjectFilterInputController,
@@ -271,8 +273,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
if (isSelectFormList) {
onTap?.call();
} else {
FocusScope.of(context).unfocus();
controller.applyAdvancedSearchFilter(context);
controller.onSearchAction.call(context);
popBack();
}
},
@@ -40,6 +40,7 @@ class TextFieldAutocompleteEmailAddressWeb extends StatefulWidget {
final OnDeleteEmailAddressTypeAction? onDeleteEmailAddressTypeAction;
final OnShowFullListEmailAddressAction? onShowFullListEmailAddressAction;
final TextEditingController? controller;
final VoidCallback? onSearchAction;
const TextFieldAutocompleteEmailAddressWeb({
Key? key,
@@ -57,6 +58,7 @@ class TextFieldAutocompleteEmailAddressWeb extends StatefulWidget {
this.onDeleteEmailAddressTypeAction,
this.onShowFullListEmailAddressAction,
this.controller,
this.onSearchAction,
}) : super(key: key);
@override
@@ -302,6 +304,11 @@ class _TextFieldAutocompleteEmailAddressWebState extends State<TextFieldAutocomp
StateSetter stateSetter
) {
final textTrim = value.trim();
if (textTrim.isEmpty) {
widget.onSearchAction?.call();
return;
}
if (!_isDuplicated(textTrim)) {
stateSetter(() => _currentListEmailAddress.add(EmailAddress(null, textTrim)));
_updateListEmailAddressAction();