import styles from "./RegisterPage.module.css"; import Background from "../../components/Background/Background"; import Input from "../../components/ui/Input/Input"; import Button from "../../components/ui/Button/Button"; import {useContext, useEffect, useState} from "react"; import register from "../../utils/register.js"; import { useNavigate } from "react-router"; import { AuthContext } from "../../contexts/Auth/AuthContext"; import Modal from "../../components/ui/Modal/Modal"; import {AuthContextType } from "../../../src/contexts/Auth/AuthContext"; function RegisterPage() { const navigate = useNavigate(); const [email, setEmail] = useState(""); const [phone, setPhone] = useState(""); const [password, setPassword] = useState(""); const [confirmPassword, setConfirmPassword] = useState(""); const [name, setName] = useState(""); const [lastName, setLastName] = useState(""); const [open, setOpen] = useState(false); const [title, setTitle] = useState(""); const [message, setMessage] = useState(""); const { user, loading } = useContext(AuthContext) as AuthContextType useEffect(() => { if (!loading && user) { navigate("/"); } }, [loading, user]); const handleModal = (t: string, m: string) => { setTitle(t) setMessage(m) setOpen(true); } const handleKeyDown = (e: React.KeyboardEvent) => { if (e.key === 'Enter') { handleSubmit(); } }; async function handleSubmit():Promise { 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.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"); } } const handlePhone = (e:React.ChangeEvent) => { const value = e.target.value; if (value === "" || /^[0-9 +]+$/.test(value)) { setPhone(value); } }; return

Créer un compte

setName(e.target.value)} style={{ width: '100%' }} />
setLastName(e.target.value)} style={{ width: '100%' }} />
setEmail(e.target.value)} style={{ width: '100%' }} />
setPassword(e.target.value)} value={password} placeholder={"Mot de passe"}/>
setConfirmPassword(e.target.value)} value={confirmPassword} placeholder={"Confirmer le mot de passe"} />
setOpen(false)} title={title}>

{message}

} export default RegisterPage;