import { useState } from "react"; import { AreaRiservataLayout } from "~/components/Layout"; import { LoadingPage } from "~/components/loading"; import type { NextPageWithLayout } from "~/pages/_app"; import { api } from "~/utils/api"; import toast from "react-hot-toast"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, } from "~/components/ui/dialog"; import { Plus, RefreshCcw } from "lucide-react"; import { Status500 } from "~/components/status-page"; import { Button } from "~/components/ui/button"; import { StringheTable } from "~/components/tables/stringhe-table"; import type { TestiEStringhe } from "~/schemas/public/TestiEStringhe"; import { FormStringhe } from "~/forms/FormStringhe"; const AdminTestiStringhe: NextPageWithLayout = () => { const { data, isLoading, refetch } = api.settings.getStringhe.useQuery(); const [openEdit, setOpenEdit] = useState(false); const [editData, setEditData] = useState(null); const handleOpen = (status: boolean) => { setOpenEdit(status); }; const handleEdit = (data: TestiEStringhe | null) => { setEditData(data); }; if (isLoading) return ; if (!data) return ; return (

Testi e Stringhe

); }; export default AdminTestiStringhe; AdminTestiStringhe.getLayout = function getLayout(page) { return {page}; }; const EditModal = ({ initial, open, setOpen, }: { initial: TestiEStringhe | null; open: boolean; setOpen: (status: boolean) => void; }) => { const utils = api.useUtils(); const { mutate: edit } = api.settings.updateStringa.useMutation({ onSuccess: async () => { toast.success("Successo"); await utils.settings.getStringhe.invalidate(); setOpen(false); }, onError: (error) => { toast.error(error.message); }, }); const { mutate: add } = api.settings.newStringa.useMutation({ onSuccess: async () => { toast.success("Successo"); await utils.settings.getStringhe.invalidate(); setOpen(false); }, onError: (error) => { toast.error(error.message); }, }); const { mutate: del } = api.settings.deleteStringa.useMutation({ onSuccess: async () => { toast.success("Successo"); await utils.settings.getStringhe.invalidate(); setOpen(false); }, onError: (error) => { toast.error(error.message); }, }); return ( {!initial ? "Aggiungi Banner" : "Modifica Valori"} Edit {!initial ? (
{ add({ stringaId: fields.stinga_id, stringaValue: fields.stringa_value, }); }} initialValues={null} />
) : (
{ edit({ stringaId: fields.stinga_id, stringaValue: fields.stringa_value, }); }} initialValues={{ ...initial, }} del={(v) => del({ stringaId: v })} />
)}
); };