"use client"; import { useState } from "react"; import { submitContactMessage } from "@/app/[locale]/contact/actions"; type ContactFormProps = { labels: { name: string; email: string; message: string; submit: string; sending: string; success: string; savedWarning: string; invalid: string; rateLimit: string; }; }; export default function ContactForm({ labels }: ContactFormProps) { const [status, setStatus] = useState<{ type: "success" | "warning" | "error"; message: string } | null>(null); const [isSubmitting, setIsSubmitting] = useState(false); async function handleSubmit(event: React.FormEvent) { event.preventDefault(); setStatus(null); setIsSubmitting(true); const form = event.currentTarget; const result = await submitContactMessage(Object.fromEntries(new FormData(form).entries())); setIsSubmitting(false); if (result.error) { setStatus({ type: "error", message: result.error === "rate-limit" ? labels.rateLimit : labels.invalid }); return; } form.reset(); setStatus({ type: result.warning ? "warning" : "success", message: result.warning ? labels.savedWarning : labels.success }); } return (