"use client"; import React, { useState } from 'react'; import Link from 'next/link'; import { useUser } from '@/components/UserProvider'; const ForgotPasswordPage = () => { const { settings } = useUser(); const siteName = settings?.siteName || "Afrohub"; // Fetch CSRF token on mount React.useEffect(() => { fetch('/api/auth/csrf') .then(res => res.json()) .then(data => setCsrfToken(data.csrfToken)) .catch(err => console.error('Error fetching CSRF token:', err)); }, []); const [email, setEmail] = useState(''); const [message, setMessage] = useState(''); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const [csrfToken, setCsrfToken] = useState(''); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(''); setMessage(''); try { const res = await fetch('/api/auth/forgot-password', { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-csrf-token': csrfToken }, body: JSON.stringify({ email }), }); const data = await res.json(); if (!res.ok) { throw new Error(data.error || 'Une erreur est survenue'); } setMessage(data.message); } catch (err: any) { setError(err.message); } finally { setLoading(false); } }; return (
Entrez votre adresse email pour recevoir un lien de réinitialisation