From 4a2155121415dd514a7a4bc1a234fdc9f0328fa8 Mon Sep 17 00:00:00 2001 From: Caroline Salib Date: Wed, 20 May 2020 08:32:00 -0600 Subject: [PATCH] Add email format validation #134 --- .../containers/UserSettings/UserSettings.jsx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/javascript/containers/UserSettings/UserSettings.jsx b/app/javascript/containers/UserSettings/UserSettings.jsx index e8e805bf..8887d9cb 100644 --- a/app/javascript/containers/UserSettings/UserSettings.jsx +++ b/app/javascript/containers/UserSettings/UserSettings.jsx @@ -9,7 +9,7 @@ import changePictureImage from "../../images/user_settings_change_picture.svg"; import UserSettingsApi from "../../api/userSettingsApi"; // TODO: password min requirements validation -// TODO: phone validation +// TODO: phone validation/mask // TODO: email validation const NO_PASSWORD = 'NO_PASSWORD'; @@ -52,6 +52,9 @@ const UserSettings = (props) => { const validateInput = (userSettings) => { let errors = {}; + // TODO: transform this into a new validation class + // ex: errors << Validation.requiredFields(userSettings, ['name', 'email', 'phone', 'password']) + // ex: errors << Validation.password(userSettings.password, userSettings.passwordConfirmation) ['name', 'email', 'phone', 'password'].map((inputName) => { if (userSettings[inputName].trim() === '') { errors[inputName] = { @@ -60,7 +63,6 @@ const UserSettings = (props) => { } }) - if (userSettings.password !== userSettings.passwordConfirmation) { errors['password'] = { message: null @@ -71,6 +73,13 @@ const UserSettings = (props) => { } } + // TODO: do not override required validation + if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(userSettings.email))) { + errors['email'] = { + message: "E-mail inválido" + } + } + setFormErrors(errors) }