import { useState } from "react"; import toast from "react-hot-toast"; import { FormNewServizio, type FormValues } from "~/forms/FormNewServizio"; import type { Servizio } from "~/schemas/public/Servizio"; import type { UsersId } from "~/schemas/public/Users"; import { api } from "~/utils/api"; import { Button } from "../ui/button"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, } from "../ui/dialog"; export const ServiziHeader = ({ userId }: { userId: UsersId }) => { const [open, setOpen] = useState(false); const [editData, setEditData] = useState(undefined); return (

Servizi cliente

); }; const NewServizioModal = ({ userId, editData, setEditData, open, setOpen, }: { userId: UsersId; editData: Servizio | undefined; setEditData: (data: Servizio | undefined) => void; open: boolean; setOpen: (open: boolean) => void; }) => { const utils = api.useUtils(); const { mutate: add } = api.servizio.addServizio.useMutation({ onError: (error) => { toast.error(error.message); }, onSuccess: async () => { toast.success("Servizio creato con successo"); await utils.servizio.getUserServizi.invalidate(); await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); setEditData(undefined); setOpen(false); }, }); const { mutate: update } = api.servizio.updateServizio.useMutation({ onError: (error) => { toast.error(error.message); }, onSuccess: async (data) => { toast.success("Servizio modificato con successo"); await utils.servizio.getUserServizi.invalidate(); await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); await utils.servizio.getServizioData.invalidate({ servizioId: data.servizio_id }); await utils.servizio.getServizio.invalidate({ servizioId: data.servizio_id, }); await utils.servizio.getCompatibileAnnunci.invalidate({ servizioId: data.servizio_id, }); await utils.servizio.getPacksSolution.invalidate({ servizioId: data.servizio_id, }); setEditData(undefined); setOpen(false); }, }); function onSubmit(fields: FormValues) { if (editData) { update({ data: { ...fields, }, servizioId: editData.servizio_id, }); } else { add({ data: { ...fields, user_id: userId } }); } } return ( Creazione Servizio desc
); };