refactor: enhance servizio update handling by invalidating packs solution cache after modifications

This commit is contained in:
Marco Pedone 2025-12-18 12:18:24 +01:00
parent 4899c66822
commit e692f9f1cb
7 changed files with 26 additions and 11 deletions

View file

@ -84,9 +84,12 @@ export const OrdiniModal = ({
onError: (error) => { onError: (error) => {
toast.error(error.message); toast.error(error.message);
}, },
onSuccess: async () => { onSuccess: async (data) => {
toast.success("Servizio modificato con successo"); toast.success("Servizio modificato con successo");
await utils.servizio.getUserServizi.invalidate(); await utils.servizio.getUserServizi.invalidate();
await utils.servizio.getPacksSolution.invalidate({
servizioId: data.servizio_id,
});
}, },
}); });

View file

@ -539,6 +539,7 @@ const TransitorioSection = () => {
toast.success("Servizio modificato con successo"); toast.success("Servizio modificato con successo");
await utils.servizio.getUserServizi.invalidate(); await utils.servizio.getUserServizi.invalidate();
await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); await utils.servizio.getAllServizioAnnunci.invalidate({ userId });
await utils.servizio.getPacksSolution.invalidate({ servizioId });
}, },
}); });
@ -604,6 +605,7 @@ const StabileSection = () => {
toast.success("Servizio modificato con successo"); toast.success("Servizio modificato con successo");
await utils.servizio.getUserServizi.invalidate(); await utils.servizio.getUserServizi.invalidate();
await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); await utils.servizio.getAllServizioAnnunci.invalidate({ userId });
await utils.servizio.getPacksSolution.invalidate({ servizioId });
}, },
}); });
@ -647,11 +649,10 @@ const StabileSection = () => {
}; };
const GeneralSection = () => { const GeneralSection = () => {
const { servizio } = useServizio();
const { data } = useServizioAnnuncio(); const { data } = useServizioAnnuncio();
const { t } = useTranslation(); const { t } = useTranslation();
const { servizioId, userId } = useServizio(); const { servizio, servizioId, userId } = useServizio();
const utils = api.useUtils(); const utils = api.useUtils();
const { mutate: update } = api.servizio.updateServizio.useMutation({ const { mutate: update } = api.servizio.updateServizio.useMutation({
onError: (error) => { onError: (error) => {
@ -661,6 +662,7 @@ const GeneralSection = () => {
toast.success("Servizio modificato con successo"); toast.success("Servizio modificato con successo");
await utils.servizio.getUserServizi.invalidate(); await utils.servizio.getUserServizi.invalidate();
await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); await utils.servizio.getAllServizioAnnunci.invalidate({ userId });
await utils.servizio.getPacksSolution.invalidate({ servizioId });
}, },
}); });

View file

@ -144,7 +144,7 @@ const InvioConferma = ({ closeModal }: { closeModal: () => void }) => {
const DocCheckpoint = () => { const DocCheckpoint = () => {
const { t } = useTranslation(); const { t } = useTranslation();
const { userId, servizio, isAdmin } = useServizio(); const { userId, servizio, isAdmin, servizioId } = useServizio();
const utils = api.useUtils(); const utils = api.useUtils();
const { mutate, isPending } = api.servizio.updateServizio.useMutation({ const { mutate, isPending } = api.servizio.updateServizio.useMutation({
onSuccess: async () => { onSuccess: async () => {
@ -155,6 +155,7 @@ const DocCheckpoint = () => {
await utils.servizio.getServizio.invalidate({ await utils.servizio.getServizio.invalidate({
servizioId: servizio.servizio_id, servizioId: servizio.servizio_id,
}); });
await utils.servizio.getPacksSolution.invalidate({ servizioId });
}, },
onError: (err) => { onError: (err) => {
toast.error(`Errore aggiornamento servizio: ${err.message}`); toast.error(`Errore aggiornamento servizio: ${err.message}`);

View file

@ -60,7 +60,7 @@ const ServizioCard = ({
}; };
export const ServizioContent = () => { export const ServizioContent = () => {
const { servizio, isAdmin, userId } = useServizio(); const { servizio, isAdmin, userId, servizioId } = useServizio();
const utils = api.useUtils(); const utils = api.useUtils();
const { mutate: updateServizio } = api.servizio.updateServizio.useMutation({ const { mutate: updateServizio } = api.servizio.updateServizio.useMutation({
onError: (error) => { onError: (error) => {
@ -69,6 +69,7 @@ export const ServizioContent = () => {
onSuccess: async () => { onSuccess: async () => {
toast.success("Servizio modificato con successo"); toast.success("Servizio modificato con successo");
await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); await utils.servizio.getAllServizioAnnunci.invalidate({ userId });
await utils.servizio.getPacksSolution.invalidate({ servizioId });
}, },
}); });

View file

@ -1,7 +1,6 @@
import { add } from "date-fns"; import { add } from "date-fns";
import { import {
Bug, Bug,
Calculator,
CalendarClock, CalendarClock,
ChevronDown, ChevronDown,
ChevronUp, ChevronUp,
@ -9,6 +8,7 @@ import {
Cog, Cog,
Info, Info,
Plus, Plus,
SlidersHorizontal,
UserCircle, UserCircle,
} from "lucide-react"; } from "lucide-react";
import { useState } from "react"; import { useState } from "react";
@ -416,6 +416,7 @@ const EditParametri = () => {
await utils.servizio.getCompatibileAnnunci.invalidate({ await utils.servizio.getCompatibileAnnunci.invalidate({
servizioId, servizioId,
}); });
await utils.servizio.getPacksSolution.invalidate({ servizioId });
setOpenEditParametri(false); setOpenEditParametri(false);
}, },
}); });
@ -442,7 +443,7 @@ const EditParametri = () => {
} }
variant="secondary" variant="secondary"
> >
<Calculator /> <SlidersHorizontal />
Parametri Parametri
</Button> </Button>
</CredenzaTrigger> </CredenzaTrigger>
@ -486,6 +487,7 @@ const EditServizioAdmin = () => {
await utils.servizio.getCompatibileAnnunci.invalidate({ await utils.servizio.getCompatibileAnnunci.invalidate({
servizioId, servizioId,
}); });
await utils.servizio.getPacksSolution.invalidate({ servizioId });
setOpen(false); setOpen(false);
}, },
}); });

View file

@ -68,9 +68,12 @@ export const TabServizio = ({
onError: (error) => { onError: (error) => {
toast.error(error.message); toast.error(error.message);
}, },
onSuccess: async () => { onSuccess: async (data) => {
toast.success("Servizio modificato con successo"); toast.success("Servizio modificato con successo");
await utils.servizio.getUserServizi.invalidate(); await utils.servizio.getUserServizi.invalidate();
await utils.servizio.getPacksSolution.invalidate({
servizioId: data.servizio_id,
});
}, },
}); });

View file

@ -120,15 +120,18 @@ const NewServizioModal = ({
onError: (error) => { onError: (error) => {
toast.error(error.message); toast.error(error.message);
}, },
onSuccess: async () => { onSuccess: async (data) => {
toast.success("Servizio modificato con successo"); toast.success("Servizio modificato con successo");
await utils.servizio.getUserServizi.invalidate(); await utils.servizio.getUserServizi.invalidate();
await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); await utils.servizio.getAllServizioAnnunci.invalidate({ userId });
await utils.servizio.getServizio.invalidate({ await utils.servizio.getServizio.invalidate({
servizioId: editData?.servizio_id, servizioId: data.servizio_id,
}); });
await utils.servizio.getCompatibileAnnunci.invalidate({ await utils.servizio.getCompatibileAnnunci.invalidate({
servizioId: editData?.servizio_id, servizioId: data.servizio_id,
});
await utils.servizio.getPacksSolution.invalidate({
servizioId: data.servizio_id,
}); });
setEditData(undefined); setEditData(undefined);
setOpen(false); setOpen(false);