"use client" import { useState, useRef } from "react" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Textarea } from "@/components/ui/textarea" import { useToast } from "@/components/ui/use-toast" import { submitContactForm } from "@/app/actions/contact" import { useFormStatus } from "react-dom" import { motion } from "framer-motion" function SubmitButton() { const { pending } = useFormStatus() return ( ) } export function ContactForm() { const { toast } = useToast() const formRef = useRef(null) const [formState, setFormState] = useState<{ success?: boolean message?: string }>({}) async function handleSubmit(formData: FormData) { // Reset form state setFormState({}) // Submit the form const result = await submitContactForm(formData) // Update form state setFormState(result) // Show toast notification toast({ title: result.success ? "Messaggio inviato!" : "Errore", description: result.message, variant: result.success ? "default" : "destructive", }) // Reset form if successful if (result.success && formRef.current) { formRef.current.reset() } } return (
{formState.message && ( {formState.message} )}