From 4b4ada28dcf8b6f4c41288b5c0850e8893db1882 Mon Sep 17 00:00:00 2001 From: Elliot Axel Noriega Date: Thu, 8 Aug 2024 19:38:59 -0600 Subject: [PATCH 1/3] Errores de backend situados en sus respectivos input --- .../components/users/Register/RegisterForm.jsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/cosiap_frontend/src/components/users/Register/RegisterForm.jsx b/cosiap_frontend/src/components/users/Register/RegisterForm.jsx index bd51aa8..4f7a6cc 100644 --- a/cosiap_frontend/src/components/users/Register/RegisterForm.jsx +++ b/cosiap_frontend/src/components/users/Register/RegisterForm.jsx @@ -26,7 +26,7 @@ export default function RegisterForm( {setSentEmail, setViewPageLoader} ) { setSentEmail(true); } catch (error) { console.error("Registration failed:", error); - console.log(error.response.data.detail); + console.log(error.response.data); setRegisterErrorMessage(error.response.data); } setViewPageLoader(false); @@ -35,7 +35,7 @@ export default function RegisterForm( {setSentEmail, setViewPageLoader} ) { return (
- + {/* */}
@@ -53,7 +56,9 @@ export default function RegisterForm( {setSentEmail, setViewPageLoader} ) { type="text" placeholder="CURP" register={register} - errors={errors.curp ? errors.curp.message : undefined} + errors={ registerErrorMessage.curp ? registerErrorMessage.curp[0] : // Si no hay errores enviados desde back + errors.curp ? errors.curp.message : undefined // Mostrara los de la validadion Yup + } />
@@ -63,7 +68,9 @@ export default function RegisterForm( {setSentEmail, setViewPageLoader} ) { type="text" placeholder="CORREO ELECTRONICO" register={register} - errors={errors.email ? errors.email.message : undefined} + errors={ registerErrorMessage.email ? registerErrorMessage.email[0] : // Si no hay errores enviados desde back + errors.email ? errors.email.message : undefined // Mostrara los de la validadion Yup + } />
-- GitLab From 44ee2b0e69f9331a1ab034b02c49fe03f6d1c78a Mon Sep 17 00:00:00 2001 From: Elliot Axel Noriega Date: Thu, 8 Aug 2024 19:41:30 -0600 Subject: [PATCH 2/3] =?UTF-8?q?Redireccionamiento=20de=20url=20de=20correo?= =?UTF-8?q?=20de=20verificaci=C3=B3n=20a=20su=20respectiva=20vista?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cosiap_api/users/views.py | 4 +- .../components/users/Register/Register.jsx | 104 +++++++++++++++--- 2 files changed, 93 insertions(+), 15 deletions(-) diff --git a/cosiap_api/users/views.py b/cosiap_api/users/views.py index b70c089..09a19f8 100644 --- a/cosiap_api/users/views.py +++ b/cosiap_api/users/views.py @@ -260,6 +260,6 @@ class VerificarCorreo(APIView): if usuario is not None and account_activation_token.check_token(usuario, token): usuario.is_active = True usuario.save() - return redirect(f'http://localhost:5173/auth?status=success&message=Cuenta verificada exitosamente.') + return redirect(f'http://localhost:5173/authentication/register?status=success&message=Cuenta verificada exitosamente.') else: - return redirect(f'http://localhost:5173/auth?status=error&message=El token de verificación es inválido o ha expirado.') \ No newline at end of file + return redirect(f'http://localhost:5173/authentication/register?status=error&message=El token de verificación es inválido o ha expirado.') \ No newline at end of file diff --git a/cosiap_frontend/src/components/users/Register/Register.jsx b/cosiap_frontend/src/components/users/Register/Register.jsx index 14e6c93..90f72fb 100644 --- a/cosiap_frontend/src/components/users/Register/Register.jsx +++ b/cosiap_frontend/src/components/users/Register/Register.jsx @@ -1,36 +1,114 @@ import LayoutBaseAuthenticator from '@/components/common/layouts/LayoutBaseAuthenticator'; -import { useNavigate } from "react-router-dom"; +import { useNavigate, useLocation } from "react-router-dom"; -import { useState } from "react"; +import { useState, useEffect } from "react"; import RegisterForm from "./RegisterForm"; export default function Register({setViewPageLoader} ) { const [sentEmail, setSentEmail] = useState(false); + // Para cambiar de url const navigate = useNavigate(); + // Contiene la informacion de la url actual + const location = useLocation(); + + const [verifySuccess, setVerifySuccess] = useState(null); + + useEffect(() => { + //Parametros mandados de la url, con clave - valor + const queryParams = new URLSearchParams(location.search); + // isEmpty será true si queryParams no tiene ningún parámetro y false si tiene al menos uno. + const isEmpty = ![...queryParams].length; + + if (!isEmpty){//Contiene parametros + + handleAccountVerificatión(queryParams); + + + // Limpia los parámetros de la URL + // Redirige a la misma página sin parámetros + navigate(location.pathname, { replace: true }); + }//No contiene parametros + + }, [location.search]); // Si location cambia, se ejecutara el useEffect + + //Funcion para procesar los parametros de una verificación de la cuenta + const handleAccountVerificatión = (queryParams) => { + // Verificación de cuenta + if (queryParams.has('status') && queryParams.has('message')){ //Si fueron mandados los parametros de verificación + const status = queryParams.get('status'); + // true = verificacion exitosa, false = verificacion fallida + setVerifySuccess(status === 'success'); + } + } + function navigateLogin(){ navigate('/authentication'); } return ( - + + { - !sentEmail ? ( - <> - -

- Iniciar sesión -

- - ) : ( + verifySuccess === null ? ( + !sentEmail ? ( + <> + +

+ Iniciar sesión +

+ + ) : ( + <> +
+
+

¡Correo de confirmación
enviado!

+
+
+

Se ha enviado un correo
electrónico para confirmar la
creación de tu cuenta.

+
+
+
+ +
+ + ) + ) : + ( <>
-

¡Correo de confirmación
enviado!

+

+ {verifySuccess ? ( + <> + ¡Haz confirmado la + creación de tu cuenta! + + ) : ( + <> + Lo sentimos, tu token + de verificación ha expirado. + + )} +

-

Se ha enviado un correo
electrónico para confirmar la
creación de tu cuenta.

+

+ {verifySuccess ? ( + <> + Ahora puedes iniciar sesión con
+ tus credenciales + + ) : ( + <> + Realiza de nuevo tu registro para
+ un nuevo enlace de verificación + + )} +

-- GitLab From 85a8c95affaf21300d6c9f7c33609dd14536f17a Mon Sep 17 00:00:00 2001 From: Elliot Axel Noriega Date: Fri, 9 Aug 2024 12:41:59 -0600 Subject: [PATCH 3/3] =?UTF-8?q?Resoluci=C3=B3n=20de=20visualizaci=C3=B3n?= =?UTF-8?q?=20de=20errores=20de=20formulario?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/users/Register/Register.jsx | 2 +- .../src/components/users/Register/RegisterForm.jsx | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/cosiap_frontend/src/components/users/Register/Register.jsx b/cosiap_frontend/src/components/users/Register/Register.jsx index 90f72fb..4ecbdae 100644 --- a/cosiap_frontend/src/components/users/Register/Register.jsx +++ b/cosiap_frontend/src/components/users/Register/Register.jsx @@ -23,7 +23,7 @@ export default function Register({setViewPageLoader} ) { if (!isEmpty){//Contiene parametros handleAccountVerificatión(queryParams); - + // Limpia los parámetros de la URL // Redirige a la misma página sin parámetros diff --git a/cosiap_frontend/src/components/users/Register/RegisterForm.jsx b/cosiap_frontend/src/components/users/Register/RegisterForm.jsx index 4f7a6cc..153e0db 100644 --- a/cosiap_frontend/src/components/users/Register/RegisterForm.jsx +++ b/cosiap_frontend/src/components/users/Register/RegisterForm.jsx @@ -56,8 +56,9 @@ export default function RegisterForm( {setSentEmail, setViewPageLoader} ) { type="text" placeholder="CURP" register={register} - errors={ registerErrorMessage.curp ? registerErrorMessage.curp[0] : // Si no hay errores enviados desde back - errors.curp ? errors.curp.message : undefined // Mostrara los de la validadion Yup + errors={ + errors.curp ? errors.curp.message : // Si no hay errores de la validadion Yup + registerErrorMessage.curp ? registerErrorMessage.curp[0] : undefined // Mostrara los errores enviados desde back si lo hay } />
@@ -68,8 +69,9 @@ export default function RegisterForm( {setSentEmail, setViewPageLoader} ) { type="text" placeholder="CORREO ELECTRONICO" register={register} - errors={ registerErrorMessage.email ? registerErrorMessage.email[0] : // Si no hay errores enviados desde back - errors.email ? errors.email.message : undefined // Mostrara los de la validadion Yup + errors={ + errors.email ? errors.email.message : // Si no hay errores de la validadion Yup + registerErrorMessage.email ? registerErrorMessage.email[0] : undefined // Mostrara los errores enviados desde back si lo hay } />
-- GitLab