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; hasAttachment.value = searchEmailFilter.hasAttachment;
if (searchEmailFilter.from.isEmpty) { if (searchEmailFilter.from.isEmpty) {
listFromEmailAddress.clear(); listFromEmailAddress.clear();
} else {
fromAddressExpandMode.value = ExpandMode.COLLAPSE;
} }
if (searchEmailFilter.to.isEmpty) { if (searchEmailFilter.to.isEmpty) {
listToEmailAddress.clear(); listToEmailAddress.clear();
} else {
toAddressExpandMode.value = ExpandMode.COLLAPSE;
} }
} }
@@ -476,6 +480,11 @@ class AdvancedFilterController extends BaseController {
listFromEmailAddress = List.from(listEmailAddress); listFromEmailAddress = List.from(listEmailAddress);
} }
void onSearchAction(BuildContext context) {
FocusScope.of(context).unfocus();
applyAdvancedSearchFilter(context);
}
@override @override
void onClose() { void onClose() {
_removeFocusListener(); _removeFocusListener();
@@ -40,6 +40,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
onShowFullListEmailAddressAction: controller.showFullEmailAddress, onShowFullListEmailAddressAction: controller.showFullEmailAddress,
onUpdateListEmailAddressAction: controller.updateListEmailAddress, onUpdateListEmailAddressAction: controller.updateListEmailAddress,
onSuggestionEmailAddress: controller.getAutoCompleteSuggestion, onSuggestionEmailAddress: controller.getAutoCompleteSuggestion,
onSearchAction: () => controller.onSearchAction.call(context),
)), )),
Obx(() => TextFieldAutocompleteEmailAddressWeb( Obx(() => TextFieldAutocompleteEmailAddressWeb(
field: AdvancedSearchFilterField.to, field: AdvancedSearchFilterField.to,
@@ -52,6 +53,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
onShowFullListEmailAddressAction: controller.showFullEmailAddress, onShowFullListEmailAddressAction: controller.showFullEmailAddress,
onUpdateListEmailAddressAction: controller.updateListEmailAddress, onUpdateListEmailAddressAction: controller.updateListEmailAddress,
onSuggestionEmailAddress: controller.getAutoCompleteSuggestion, onSuggestionEmailAddress: controller.getAutoCompleteSuggestion,
onSearchAction: () => controller.onSearchAction.call(context),
)), )),
_buildFilterField( _buildFilterField(
textEditingController: controller.subjectFilterInputController, textEditingController: controller.subjectFilterInputController,
@@ -271,8 +273,7 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
if (isSelectFormList) { if (isSelectFormList) {
onTap?.call(); onTap?.call();
} else { } else {
FocusScope.of(context).unfocus(); controller.onSearchAction.call(context);
controller.applyAdvancedSearchFilter(context);
popBack(); popBack();
} }
}, },
@@ -40,6 +40,7 @@ class TextFieldAutocompleteEmailAddressWeb extends StatefulWidget {
final OnDeleteEmailAddressTypeAction? onDeleteEmailAddressTypeAction; final OnDeleteEmailAddressTypeAction? onDeleteEmailAddressTypeAction;
final OnShowFullListEmailAddressAction? onShowFullListEmailAddressAction; final OnShowFullListEmailAddressAction? onShowFullListEmailAddressAction;
final TextEditingController? controller; final TextEditingController? controller;
final VoidCallback? onSearchAction;
const TextFieldAutocompleteEmailAddressWeb({ const TextFieldAutocompleteEmailAddressWeb({
Key? key, Key? key,
@@ -57,6 +58,7 @@ class TextFieldAutocompleteEmailAddressWeb extends StatefulWidget {
this.onDeleteEmailAddressTypeAction, this.onDeleteEmailAddressTypeAction,
this.onShowFullListEmailAddressAction, this.onShowFullListEmailAddressAction,
this.controller, this.controller,
this.onSearchAction,
}) : super(key: key); }) : super(key: key);
@override @override
@@ -302,6 +304,11 @@ class _TextFieldAutocompleteEmailAddressWebState extends State<TextFieldAutocomp
StateSetter stateSetter StateSetter stateSetter
) { ) {
final textTrim = value.trim(); final textTrim = value.trim();
if (textTrim.isEmpty) {
widget.onSearchAction?.call();
return;
}
if (!_isDuplicated(textTrim)) { if (!_isDuplicated(textTrim)) {
stateSetter(() => _currentListEmailAddress.add(EmailAddress(null, textTrim))); stateSetter(() => _currentListEmailAddress.add(EmailAddress(null, textTrim)));
_updateListEmailAddressAction(); _updateListEmailAddressAction();