TF-1677: Support validation email for something@localhost case

(cherry picked from commit e74208941e8e5a2480bb444eca6b462bc576eb94)
This commit is contained in:
HuyNguyen
2023-04-26 14:36:25 +07:00
committed by Dat Vu
parent 136a40b0e3
commit 1d6b8a13bd
3 changed files with 8 additions and 2 deletions
@@ -18,6 +18,7 @@ import 'package:tmail_ui_user/features/contact/presentation/widgets/contact_inpu
import 'package:tmail_ui_user/features/contact/presentation/widgets/contact_suggestion_box_item.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings_utils.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
typedef OnSuggestionContactCallbackAction = Future<List<EmailAddress>> Function(String query);
typedef OnAddListContactCallbackAction = Function(List<EmailAddress> listEmailAddress);
@@ -256,7 +257,7 @@ class _AutocompleteContactTextFieldWithTagsState extends State<AutocompleteConta
}
bool _isValidAllEmailAddress(List<EmailAddress> addedEmailAddress) {
return addedEmailAddress.every((addedMail) => addedMail.emailAddress.isEmail);
return addedEmailAddress.every((addedMail) => addedMail.emailAddress.isEmail || AppUtils.isEmailLocalhost(addedMail.emailAddress));
}
bool _inputFieldIsEmpty() {
@@ -9,6 +9,7 @@ import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
import 'package:model/extensions/email_address_extension.dart';
import 'package:tmail_ui_user/features/contact/presentation/widgets/gradient_color_avatar_icon.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
typedef DeleteContactCallbackAction = Function(EmailAddress contactDeleted);
@@ -84,7 +85,7 @@ class ContactInputTagItem extends StatelessWidget {
}
}
bool _isValidEmailAddress(String value) => value.isEmail;
bool _isValidEmailAddress(String value) => value.isEmail || AppUtils.isEmailLocalhost(value);
Color _getTagBackgroundColor() {
if (lastTagFocused && isLastContact) {
+4
View File
@@ -32,4 +32,8 @@ class AppUtils {
static bool isDirectionRTL(BuildContext context) {
return intl.Bidi.isRtlLanguage(Localizations.localeOf(context).languageCode);
}
static bool isEmailLocalhost(String email) {
return RegExp(r'^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@localhost$').hasMatch(email);
}
}