TF-2667 Validate email in recipient form before send email
This commit is contained in:
@@ -68,6 +68,7 @@ import 'package:tmail_ui_user/features/email/domain/state/transform_html_email_c
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/get_email_content_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/transform_html_email_content_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_on_web_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/draggable_app_state.dart';
|
||||
@@ -721,7 +722,7 @@ class ComposerController extends BaseController with DragDropFileMixin {
|
||||
|
||||
final allListEmailAddress = listToEmailAddress + listCcEmailAddress + listBccEmailAddress;
|
||||
final listEmailAddressInvalid = allListEmailAddress
|
||||
.where((emailAddress) => !GetUtils.isEmail(emailAddress.emailAddress))
|
||||
.where((emailAddress) => !EmailUtils.isEmailAddressValid(emailAddress.emailAddress))
|
||||
.toList();
|
||||
if (listEmailAddressInvalid.isNotEmpty) {
|
||||
showConfirmDialogAction(context,
|
||||
|
||||
@@ -16,6 +16,7 @@ import 'package:tmail_ui_user/features/composer/presentation/model/draggable_ema
|
||||
import 'package:tmail_ui_user/features/composer/presentation/styles/recipient_tag_item_widget_style.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/widgets/draggable_recipient_tag_widget.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/widgets/recipient_composer_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
||||
|
||||
class RecipientTagItemWidget extends StatelessWidget {
|
||||
|
||||
@@ -172,7 +173,7 @@ class RecipientTagItemWidget extends StatelessWidget {
|
||||
Color _getTagBackgroundColor() {
|
||||
if (isLatestTagFocused && isLatestEmail) {
|
||||
return AppColor.colorItemRecipientSelected;
|
||||
} else if (GetUtils.isEmail(currentEmailAddress.emailAddress)) {
|
||||
} else if (EmailUtils.isEmailAddressValid(currentEmailAddress.emailAddress)) {
|
||||
return AppColor.colorEmailAddressTag;
|
||||
} else {
|
||||
return Colors.white;
|
||||
@@ -182,7 +183,7 @@ class RecipientTagItemWidget extends StatelessWidget {
|
||||
BorderSide _getTagBorderSide() {
|
||||
if (isLatestTagFocused && isLatestEmail) {
|
||||
return const BorderSide(width: 1, color: AppColor.primaryColor);
|
||||
} else if (GetUtils.isEmail(currentEmailAddress.emailAddress)) {
|
||||
} else if (EmailUtils.isEmailAddressValid(currentEmailAddress.emailAddress)) {
|
||||
return const BorderSide(width: 1, color: AppColor.colorEmailAddressTag);
|
||||
} else {
|
||||
return const BorderSide(
|
||||
|
||||
@@ -68,7 +68,16 @@ class EmailUtils {
|
||||
required String internalDomain
|
||||
}) {
|
||||
log('EmailUtils::isSameDomain: emailAddress = $emailAddress | internalDomain = $internalDomain');
|
||||
return GetUtils.isEmail(emailAddress) &&
|
||||
return EmailUtils.isEmailAddressValid(emailAddress) &&
|
||||
emailAddress.split('@').last.toLowerCase() == internalDomain.toLowerCase();
|
||||
}
|
||||
|
||||
static bool isEmailAddressValid(String address) {
|
||||
try {
|
||||
return GetUtils.isEmail(address) && MailAddress.validate(address).asString().isNotEmpty;
|
||||
} catch(e) {
|
||||
logError('EmailUtils::isEmailAddressValid: Exception = $e');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user