TF-3226 Apply minInputLength on autocomplete capability to app

This commit is contained in:
dab246
2024-10-25 16:07:06 +07:00
committed by Dat H. Pham
parent b344062068
commit 2177082c97
18 changed files with 135 additions and 10 deletions
@@ -75,6 +75,7 @@ class EmailRecoveryFormDesktopBuilder extends GetWidget<EmailRecoveryController>
listEmailAddress: controller.listRecipients,
responsiveUtils: controller.responsiveUtils,
expandMode: controller.recipientsExpandMode.value,
minInputLengthAutocomplete: controller.minInputLengthAutocomplete,
textEditingController: controller.recipientsFieldInputController,
focusNode: controller.focusManager.recipientsFieldFocusNode,
nextFocusNode: controller.listSenders.length != 1
@@ -90,6 +91,7 @@ class EmailRecoveryFormDesktopBuilder extends GetWidget<EmailRecoveryController>
listEmailAddress: controller.listSenders,
responsiveUtils: controller.responsiveUtils,
expandMode: controller.senderExpandMode.value,
minInputLengthAutocomplete: controller.minInputLengthAutocomplete,
textEditingController: controller.senderFieldInputController,
focusNode: controller.focusManager.senderFieldFocusNode,
nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode,
@@ -73,6 +73,7 @@ class EmailRecoveryFormMobileBuilder extends GetWidget<EmailRecoveryController>
focusNode: controller.focusManager.recipientsFieldFocusNode,
nextFocusNode: controller.focusManager.senderFieldFocusNode,
expandMode: controller.recipientsExpandMode.value,
minInputLengthAutocomplete: controller.minInputLengthAutocomplete,
textEditingController: controller.recipientsFieldInputController,
onShowFullListEmailAddressAction: controller.showFullEmailAddress,
onUpdateListEmailAddressAction: controller.updateListEmailAddress,
@@ -86,6 +87,7 @@ class EmailRecoveryFormMobileBuilder extends GetWidget<EmailRecoveryController>
focusNode: controller.focusManager.senderFieldFocusNode,
nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode,
expandMode: controller.senderExpandMode.value,
minInputLengthAutocomplete: controller.minInputLengthAutocomplete,
textEditingController: controller.senderFieldInputController,
onShowFullListEmailAddressAction: controller.showFullEmailAddress,
onUpdateListEmailAddressAction: controller.updateListEmailAddress,
@@ -75,6 +75,7 @@ class EmailRecoveryFormTabletBuilder extends GetWidget<EmailRecoveryController>
listEmailAddress: controller.listRecipients,
responsiveUtils: controller.responsiveUtils,
expandMode: controller.recipientsExpandMode.value,
minInputLengthAutocomplete: controller.minInputLengthAutocomplete,
textEditingController: controller.recipientsFieldInputController,
focusNode: controller.focusManager.recipientsFieldFocusNode,
nextFocusNode: controller.focusManager.senderFieldFocusNode,
@@ -88,6 +89,7 @@ class EmailRecoveryFormTabletBuilder extends GetWidget<EmailRecoveryController>
listEmailAddress: controller.listSenders,
responsiveUtils: controller.responsiveUtils,
expandMode: controller.senderExpandMode.value,
minInputLengthAutocomplete: controller.minInputLengthAutocomplete,
textEditingController: controller.senderFieldInputController,
focusNode: controller.focusManager.senderFieldFocusNode,
nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode,
@@ -40,6 +40,7 @@ class TextInputFieldSuggestionWidget extends StatefulWidget {
final OnDeleteTagAction? onDeleteTagAction;
final TextEditingController? textEditingController;
final VoidCallback? onCreateAction;
final int minInputLengthAutocomplete;
const TextInputFieldSuggestionWidget({
super.key,
@@ -47,6 +48,7 @@ class TextInputFieldSuggestionWidget extends StatefulWidget {
required this.listEmailAddress,
required this.responsiveUtils,
this.expandMode = ExpandMode.EXPAND,
this.minInputLengthAutocomplete = AppConfig.defaultMinInputLengthAutocomplete,
this.focusNode,
this.keyTagEditor,
this.nextFocusNode,
@@ -325,7 +327,7 @@ class _TextInputFieldSuggestionWidgetState extends State<TextInputFieldSuggestio
final tmailSuggestion = List<SuggestionEmailAddress>.empty(growable: true);
if (
processedQuery.length >= AppConfig.limitCharToStartSearch
processedQuery.length >= widget.minInputLengthAutocomplete
&& widget.onSuggestionEmailAddress != null
) {
final listEmailAddress = await widget.onSuggestionEmailAddress!(processedQuery);