validateEmail function
Validates an email address format and checks for duplicates.
Performs RFC-compliant email format validation and optional duplicate checking.
Returns null if valid, or an error message if invalid.
Parameters:
email: The email address to validateemptyMessage: Custom message when emptyinvalidFormatMessage: Custom message for invalid formattrimWhitespace: Whether to trim whitespace (default: true)existingEmails: List of existing emails to check againstalreadyExistsMessage: Custom message when email already exists
Implementation
String? validateEmail({
required String email,
String? emptyMessage,
String? invalidFormatMessage,
bool trimWhitespace = true,
List<String>? existingEmails,
String? alreadyExistsMessage,
SahihLanguage? lang,
}) {
final String input = trimWhitespace ? email.trim() : email;
if (input.isEmpty) {
return emptyMessage ?? SahihLocalization.get('email_empty', lang: lang);
}
if (!PatternType.email.isValid(input)) {
return invalidFormatMessage ??
SahihLocalization.get('email_invalid', lang: lang);
}
if (existingEmails != null && existingEmails.contains(input)) {
return alreadyExistsMessage ??
SahihLocalization.get('email_already_exists', lang: lang);
}
return null;
}