pkg-components
Version:
58 lines (54 loc) • 1.81 kB
text/typescript
export const simpleVerifyEmail = (email = '', setMessage = (message: string) => { return message }): string => {
const emailParts = email.split('@')
const emailDomain = emailParts[1]
let errorMessage = ''
if (emailDomain !== undefined) {
if (emailDomain === '') {
errorMessage = 'por favor proporcione el dominio de la dirección de correo electrónico'
setMessage(`${errorMessage}`)
} else {
// eslint-disable-next-line no-useless-escape
const validDomainRegExp = /^((?:(?:(?:\w[\.\-\+]?)*)\w)+)((?:(?:(?:\w[\.\-+]?){0,62})\w)+)\.(\w{2,6})$/
if (emailDomain.match(validDomainRegExp) == null) {
errorMessage = 'por favor verifique el dominio de la dirección de correo electrónico'
setMessage(errorMessage)
}
}
}
return errorMessage
}
export const topLevelEmailDomainList = [
'gmail.com',
'outlook.com',
'hotmail.com',
'live.com',
'yahoo.com',
'icloud.com'
]
export const otherLevelEmailDomainList = [
'gmail.com',
'gmail.co.uk',
'outlook.com',
'outlook.co.uk',
'yahoo.com',
'yahoo.ca',
'hotmail.com',
'live.com',
'icloud.com'
]
export const provideEmailSuggestion = (email: string): string[] => {
const emailParts = email.split('@')
const emailUsername = emailParts[0]
const emailDomain = emailParts[1]
let suggestionList = [] as string[]
if (emailDomain !== undefined) {
if (emailDomain === '') {
suggestionList = topLevelEmailDomainList?.map(
domain => { return emailUsername + '@' + domain }
)
} else {
suggestionList = otherLevelEmailDomainList.filter(domain => { return domain.startsWith(emailDomain) }).map(domain => { return emailUsername + '@' + domain })
}
}
return suggestionList
}