import { useState, useEffect } from 'react'; import { Link } from 'react-router-dom'; import AuthBgCol from '../components/AuthBgCol.jsx'; export default function ForgotPassword() { const [email, setEmail] = useState(''); const [status, setStatus] = useState(null); // null | 'sent' | 'error' const [errMsg, setErrMsg] = useState(''); const [busy, setBusy] = useState(false); const [appInfo, setAppInfo] = useState({ appName: 'Crowdlending Tracker', iconUrl: null }); useEffect(() => { fetch('/api/app-info') .then(r => r.json()) .then(d => setAppInfo(d)) .catch(() => {}); }, []); const submit = async (e) => { e.preventDefault(); setErrMsg(''); setBusy(true); try { const res = await fetch('/api/auth/forgot-password', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ email }), }); const data = await res.json(); if (!res.ok) { setErrMsg(data.error || 'Une erreur est survenue.'); setStatus('error'); } else setStatus('sent'); } catch { setErrMsg('Impossible de joindre le serveur.'); setStatus('error'); } finally { setBusy(false); } }; return (
Si un compte correspond à {email}, vous recevrez un lien de réinitialisation valable 1 heure.
Retour à la connexionSaisissez votre email pour recevoir un lien de réinitialisation.
Vous vous souvenez ?{' '} Se connecter
> )}