TF-1677: Support validation email for something@localhost case
(cherry picked from commit e74208941e8e5a2480bb444eca6b462bc576eb94)
This commit is contained in:
+2
-1
@@ -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/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/features/manage_account/presentation/menu/settings_utils.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.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 OnSuggestionContactCallbackAction = Future<List<EmailAddress>> Function(String query);
|
||||||
typedef OnAddListContactCallbackAction = Function(List<EmailAddress> listEmailAddress);
|
typedef OnAddListContactCallbackAction = Function(List<EmailAddress> listEmailAddress);
|
||||||
@@ -256,7 +257,7 @@ class _AutocompleteContactTextFieldWithTagsState extends State<AutocompleteConta
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool _isValidAllEmailAddress(List<EmailAddress> addedEmailAddress) {
|
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() {
|
bool _inputFieldIsEmpty() {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import 'package:get/get.dart';
|
|||||||
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
||||||
import 'package:model/extensions/email_address_extension.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/features/contact/presentation/widgets/gradient_color_avatar_icon.dart';
|
||||||
|
import 'package:tmail_ui_user/main/utils/app_utils.dart';
|
||||||
|
|
||||||
typedef DeleteContactCallbackAction = Function(EmailAddress contactDeleted);
|
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() {
|
Color _getTagBackgroundColor() {
|
||||||
if (lastTagFocused && isLastContact) {
|
if (lastTagFocused && isLastContact) {
|
||||||
|
|||||||
@@ -32,4 +32,8 @@ class AppUtils {
|
|||||||
static bool isDirectionRTL(BuildContext context) {
|
static bool isDirectionRTL(BuildContext context) {
|
||||||
return intl.Bidi.isRtlLanguage(Localizations.localeOf(context).languageCode);
|
return intl.Bidi.isRtlLanguage(Localizations.localeOf(context).languageCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool isEmailLocalhost(String email) {
|
||||||
|
return RegExp(r'^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@localhost$').hasMatch(email);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user