diff --git a/src/components/SignupPage/SignupForm.js b/src/components/SignupPage/SignupForm.js index 8ef415a..1788d39 100644 --- a/src/components/SignupPage/SignupForm.js +++ b/src/components/SignupPage/SignupForm.js @@ -49,6 +49,7 @@ type State = { success: boolean, universities: Array, studentId: string, + confirmEmailOpen: boolean, }; class Signup extends React.Component { @@ -64,6 +65,7 @@ class Signup extends React.Component { success: false, universities: [], studentId: "", + confirmEmailOpen: false, }; componentDidMount() { @@ -91,52 +93,60 @@ class Signup extends React.Component { handleSignUpClick(event) { event.preventDefault(); - const { - username, - email, - password, - name, - surname, - degree, - university, - studentId: student_id, - error, - } = this.state; - - if (error.invalidFields.size !== 0 || !university || !degree) { - this.setState(prevState => ({ - error: { - open: true, - message: "El formulario cuenta con campos invalidos", - invalidFields: prevState.error.invalidFields, - }, - })); - return; - } + this.setState({ confirmEmailOpen: true }); + } - authenticationService - .signup({ + handleConfirmEmail(confirm) { + if (confirm) { + const { username, email, password, name, surname, degree, - university: university && university.name, - student_id, - }) - .then(() => { - this.setState({ success: true }); - }) - .catch(() => { - this.setState({ + university, + studentId: student_id, + error, + } = this.state; + + if (error.invalidFields.size !== 0 || !university || !degree) { + this.setState(prevState => ({ error: { open: true, - message: "Hubo un error de sign up, revisa que los datos ingresados sean validos.", - invalidFields: new Set(), + message: "El formulario cuenta con campos invalidos", + invalidFields: prevState.error.invalidFields, }, + })); + return; + } + + authenticationService + .signup({ + username, + email, + password, + name, + surname, + degree, + university: university && university.name, + student_id, + }) + .then(() => { + this.setState({ success: true }); + }) + .catch(() => { + this.setState({ + error: { + open: true, + message: "Hubo un error de sign up, revisa que los datos ingresados sean validos.", + invalidFields: new Set(), + }, + }); }); - }); + } + + this.setState({ confirmEmailOpen: false }); } canSignUp() { @@ -170,7 +180,7 @@ class Signup extends React.Component { render() { const { classes, history } = this.props; - const { error, success, universities, university } = this.state; + const { error, success, universities, university, confirmEmailOpen, email } = this.state; return (
@@ -183,7 +193,7 @@ class Signup extends React.Component { > Valida tu email - + Revisá tu bandeja de entrada y seguí las instrucciones en el email. Puede tardar unos minutos en llegar. @@ -198,6 +208,21 @@ class Signup extends React.Component { + + Confirmación de Email + + ¿Estás seguro de que este es tu correo: {email}? + + + + + + + Sign Up