"use client"; import { useState } from "react"; import { sendMessage } from "../utils/sendMessage"; export default function ContactForm() { // États pour gérer les valeurs des champs de formulaire const [name, setName] = useState(""); const [email, setEmail] = useState(""); const [message, setMessage] = useState(""); const [status, setStatus] = useState(""); const [isSuccess, setIsSuccess] = useState(null); const [isLoading, setIsLoading] = useState(false); // ✅ Nouvel état pour désactiver le bouton const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!name.trim() || !email.trim() || !message.trim()) { setStatus("❌ Tous les champs sont obligatoires."); setIsSuccess(false); return; } if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) { setStatus("❌ Email invalide."); setIsSuccess(false); return; } setStatus("⏳ Envoi en cours..."); setIsSuccess(null); setIsLoading(true); // ✅ Désactive le bouton pendant l'envoi try { await sendMessage(name, email, message); setStatus("✅ Message envoyé avec succès !"); setIsSuccess(true); setName(""); setEmail(""); setMessage(""); } catch (error) { setStatus("❌ Erreur lors de l'envoi du message."); setIsSuccess(false); } finally { setIsLoading(false); // ✅ Réactive le bouton après l'envoi } }; return (

📩 Contactez-moi

setName(e.target.value)} className="w-full p-3 border border-gray-300 font-orbitron-16-bold rounded mb-3 focus:outline-none focus:ring-2 focus:ring-blue-400" required /> setEmail(e.target.value)} className="w-full p-3 border border-gray-300 rounded font-orbitron-16-bold mb-3 focus:outline-none focus:ring-2 focus:ring-blue-400" required />