TF-3226 Apply minInputLength on autocomplete capability to app
This commit is contained in:
@@ -127,6 +127,7 @@ class ForwardView extends GetWidget<ForwardController> with AppLoaderMixin {
|
||||
return AutocompleteContactTextFieldWithTags(
|
||||
listEmailAddress: controller.recipientController.listRecipients,
|
||||
internalDomain: controller.accountDashBoardController.sessionCurrent?.internalDomain ?? '',
|
||||
minInputLengthAutocomplete: controller.accountDashBoardController.minInputLengthAutocomplete,
|
||||
controller: controller.recipientController.inputRecipientController,
|
||||
onSuggestionCallback: controller.recipientController.getAutoCompleteSuggestion,
|
||||
hasAddContactButton: true,
|
||||
|
||||
+6
-1
@@ -39,6 +39,7 @@ class AutocompleteContactTextFieldWithTags extends StatefulWidget {
|
||||
final OnAddListContactCallbackAction? onAddContactCallback;
|
||||
final OnExceptionAddListContactCallbackAction? onExceptionCallback;
|
||||
final String internalDomain;
|
||||
final int minInputLengthAutocomplete;
|
||||
|
||||
const AutocompleteContactTextFieldWithTags({
|
||||
Key? key,
|
||||
@@ -46,6 +47,7 @@ class AutocompleteContactTextFieldWithTags extends StatefulWidget {
|
||||
required this.internalDomain,
|
||||
this.controller,
|
||||
this.hasAddContactButton = false,
|
||||
this.minInputLengthAutocomplete = AppConfig.defaultMinInputLengthAutocomplete,
|
||||
this.onSuggestionCallback,
|
||||
this.onAddContactCallback,
|
||||
this.onExceptionCallback,
|
||||
@@ -206,7 +208,10 @@ class _AutocompleteContactTextFieldWithTagsState extends State<AutocompleteConta
|
||||
}
|
||||
|
||||
final teamMailSuggestion = List<SuggestionEmailAddress>.empty(growable: true);
|
||||
if (processedQuery.isNotEmpty && widget.onSuggestionCallback != null) {
|
||||
if (processedQuery.isNotEmpty
|
||||
&& processedQuery.length >= widget.minInputLengthAutocomplete
|
||||
&& widget.onSuggestionCallback != null
|
||||
) {
|
||||
final addedEmailAddresses = await widget.onSuggestionCallback!(processedQuery);
|
||||
final listSuggestionEmailAddress = addedEmailAddresses
|
||||
.map((emailAddress) => _toSuggestionEmailAddress(emailAddress, listEmailAddress))
|
||||
|
||||
@@ -39,6 +39,7 @@ import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||
import 'package:tmail_ui_user/main/routes/navigation_router.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_utils.dart';
|
||||
import 'package:tmail_ui_user/main/utils/app_config.dart';
|
||||
|
||||
class ManageAccountDashBoardController extends ReloadableController with UserSettingPopupMenuMixin {
|
||||
|
||||
@@ -372,6 +373,15 @@ class ManageAccountDashBoardController extends ReloadableController with UserSet
|
||||
);
|
||||
}
|
||||
|
||||
int get minInputLengthAutocomplete {
|
||||
if (sessionCurrent == null || accountId.value == null) {
|
||||
return AppConfig.defaultMinInputLengthAutocomplete;
|
||||
}
|
||||
return getMinInputLengthAutocomplete(
|
||||
session: sessionCurrent!,
|
||||
accountId: accountId.value!);
|
||||
}
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
BackButtonInterceptor.removeByName(AppRoutes.settings);
|
||||
|
||||
Reference in New Issue
Block a user