"use client"; import { useEffect, useState } from "react"; import { Loader2, Pencil } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Switch } from "@/components/ui/switch"; import { updateAssociation } from "@/lib/api"; import type { Association } from "@/lib/models"; export function EditAssociationDialog({ association, onSaved, }: { association: Association; onSaved: (association: Association) => void; }) { const [open, setOpen] = useState(false); const [saving, setSaving] = useState(false); const [name, setName] = useState(association.name); const [address, setAddress] = useState(association.address); const [vatNumber, setVatNumber] = useState(association.vatNumber ?? ""); const [runtsId, setRuntsId] = useState(association.runtsId ?? ""); const [ratificationCode, setRatificationCode] = useState(association.ratificationCode ?? ""); const [isShown, setIsShown] = useState(association.isShown ?? true); useEffect(() => { if (open) { setName(association.name); setAddress(association.address); setVatNumber(association.vatNumber ?? ""); setRuntsId(association.runtsId ?? ""); setRatificationCode(association.ratificationCode ?? ""); setIsShown(association.isShown ?? true); } }, [open, association]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setSaving(true); try { const updated = await updateAssociation(association.id!, { ...association, name, address, vatNumber, runtsId, ratificationCode, isShown, }); onSaved(updated); setOpen(false); } catch (error) { console.error("Failed to update association:", error); alert("Impossibile salvare le modifiche"); } finally { setSaving(false); } }; return ( Modifica associazione
setName(e.target.value)} required />
setAddress(e.target.value)} required />
setVatNumber(e.target.value)} />
setRuntsId(e.target.value)} />
setRatificationCode(e.target.value)} placeholder="Usato nell'attestato di adesione" />

Le associazioni non attive non compaiono nell'elenco

); }