"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 (
)
}