diff --git a/src/pages/Register/RegisterPage.jsx b/src/pages/Register/RegisterPage.jsx index 66e0d52..2046c9a 100644 --- a/src/pages/Register/RegisterPage.jsx +++ b/src/pages/Register/RegisterPage.jsx @@ -31,26 +31,25 @@ function RegisterPage() { } }, [loading, user]); + const handleModal = (t, m) => { + setTitle(t) + setMessage(m) + setOpen(true); + } + async function handleSubmit(e) { e.preventDefault(); - if(!(password === confirmPassword)) { - - setTitle("Mot de passe invalide") - setMessage("Les mots de passes ne conrrespondent pas") - setOpen(true); - - } else if(password.length < 8) { - - setTitle("Mot de passe invalide") - setMessage("Le mot de passe doit faire plus de 8 charactères") - setOpen(true); - - } else { + if(!(password === confirmPassword)) handleModal("Mot de passe invalide", "Les mots de passes ne conrrespondent pas"); + else if(password.length < 8) handleModal("Mot de passe invalide", "Le mot de passe doit faire plus de 8 charactères"); + else { const res = await register(email, password, name, lastName, phone); - if (!res || res.status !== 200) throw new Error("Register error"); - navigate("/login"); + + if (res.status === 422) { + if (res.errors.email) handleModal("Adresse Email invalide", "Le formet de votre adresse Email n'est pas valide"); + if (res.errors.phone) handleModal("Numéro de téléphone invalide", "Le formet de votre numéro de téléphone n'est pas valide"); + } else navigate("/login"); } } diff --git a/src/utils/register.js b/src/utils/register.js index b2d6fac..43a8c1d 100644 --- a/src/utils/register.js +++ b/src/utils/register.js @@ -15,16 +15,22 @@ export default async function register(email, password, name, lastname, phone) { body: JSON.stringify({ email, password, name, lastname, phone }), }); - console.log('Code HTTP :', response.status); + const data = await response.json(); if (!response.ok) { + if (response.status === 422) { + return { + status: 422, + errors: data.errors + }; + } + throw new Error(`Erreur HTTP ${response.status}`); } - const data = await response.json(); - return { status: response.status, data }; + } catch (error) { - return error; + return { status: "error", error }; } }