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 { EtichetteTable } from "~/components/tables/etichette"; import type { Etichette } from "~/schemas/public/Etichette"; import { FormEtichette } from "~/forms/FormEtichette"; import { Button } from "~/components/ui/button"; const AdminEtichette: NextPageWithLayout = () => { const { data, isLoading, refetch } = api.settings.getAllEtichette.useQuery(); const [openEdit, setOpenEdit] = useState(false); const [editData, setEditData] = useState(null); const handleOpen = (status: boolean) => { setOpenEdit(status); }; const handleEdit = (data: Etichette | null) => { setEditData(data); }; if (isLoading) return ; if (!data) return ; return (

Etichette

); }; export default AdminEtichette; AdminEtichette.getLayout = function getLayout(page) { return {page}; }; const EditModal = ({ initial, open, setOpen, }: { initial: Etichette | null; open: boolean; setOpen: (status: boolean) => void; }) => { const utils = api.useUtils(); const { mutate: edit } = api.settings.updateEtichetta.useMutation({ onSuccess: async () => { toast.success("Successo"); await utils.settings.getAllEtichette.invalidate(); await utils.chat.getChatEtichette.invalidate(); await utils.chat.getActiveChats.invalidate(); setOpen(false); }, onError: (error) => { toast.error(error.message); }, }); const { mutate: add } = api.settings.addEtichetta.useMutation({ onSuccess: async () => { toast.success("Successo"); await utils.settings.getAllEtichette.invalidate(); await utils.chat.getChatEtichette.invalidate(); await utils.chat.getActiveChats.invalidate(); setOpen(false); }, onError: (error) => { toast.error(error.message); }, }); const { mutate: del } = api.settings.removeEtichetta.useMutation({ onSuccess: async () => { toast.success("Successo"); await utils.settings.getAllEtichette.invalidate(); await utils.chat.getChatEtichette.invalidate(); await utils.chat.getActiveChats.invalidate(); setOpen(false); }, onError: (error) => { toast.error(error.message); }, }); return ( {!initial ? "Aggiungi Etichetta" : "Modifica Valori"} Edit {!initial ? (
{ add({ ...fields, }); }} initialValues={null} />
) : (
{ edit({ ...fields, }); }} initialValues={{ ...initial, }} del={(v) => del({ id_etichetta: v })} />
)}
); };