import { useState, useEffect } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import { useAuth } from '../context/AuthContext.jsx'; import PasswordStrength from '../components/PasswordStrength.jsx'; import AuthBgCol from '../components/AuthBgCol.jsx'; import PasswordInput from '../components/PasswordInput.jsx'; export default function Register() { const { register } = useAuth(); const navigate = useNavigate(); const [form, setForm] = useState({ email: '', password: '', displayName: '' }); const [err, setErr] = useState(null); const [busy, setBusy] = useState(false); const [appInfo, setAppInfo] = useState({ appName: 'Crowdlending Tracker', iconUrl: null, minPasswordLength: 8 }); useEffect(() => { fetch('/api/app-info') .then(r => r.json()) .then(d => setAppInfo(d)) .catch(() => {}); }, []); const set = (k) => (e) => setForm({ ...form, [k]: e.target.value }); const [verifyEmail, setVerifyEmail] = useState(null); // email à vérifier const submit = async (e) => { e.preventDefault(); setErr(null); setBusy(true); try { const result = await register(form.email, form.password, form.displayName || undefined); if (result?.requiresVerification) { setVerifyEmail(result.email); } else { navigate('/'); } } catch (e) { setErr(e.message); } finally { setBusy(false); } }; return (
{/* ── Colonne droite — formulaire ──────────────────────── */}
{/* Logo + nom */}
{appInfo.iconUrl && ( {appInfo.appName} )} {appInfo.appName}
{/* ── Écran vérification email ── */} {verifyEmail ? (

Vérifiez votre email

Un email de vérification a été envoyé à

{verifyEmail}

Cliquez sur le lien dans l'email pour activer votre compte. Vérifiez aussi vos spams.

Retour à la connexion
) : ( <> {/* En-tête */}

Créer un compte

Rejoignez {appInfo.appName}

{/* Formulaire */}
{err && (
{err}
)}

Déjà inscrit ?{' '} Se connecter

)} {/* fin verifyEmail ternaire */}
); }