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) => {
toast.error(error.message);
},
onSuccess: async () => {
onSuccess: async (data) => {
toast.success("Servizio modificato con successo");
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");
await utils.servizio.getUserServizi.invalidate();
await utils.servizio.getAllServizioAnnunci.invalidate({ userId });
await utils.servizio.getPacksSolution.invalidate({ servizioId });
},
});
@ -604,6 +605,7 @@ const StabileSection = () => {
toast.success("Servizio modificato con successo");
await utils.servizio.getUserServizi.invalidate();
await utils.servizio.getAllServizioAnnunci.invalidate({ userId });
await utils.servizio.getPacksSolution.invalidate({ servizioId });
},
});
@ -647,11 +649,10 @@ const StabileSection = () => {
};
const GeneralSection = () => {
const { servizio } = useServizio();
const { data } = useServizioAnnuncio();
const { t } = useTranslation();
const { servizioId, userId } = useServizio();
const { servizio, servizioId, userId } = useServizio();
const utils = api.useUtils();
const { mutate: update } = api.servizio.updateServizio.useMutation({
onError: (error) => {
@ -661,6 +662,7 @@ const GeneralSection = () => {
toast.success("Servizio modificato con successo");
await utils.servizio.getUserServizi.invalidate();
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 { t } = useTranslation();
const { userId, servizio, isAdmin } = useServizio();
const { userId, servizio, isAdmin, servizioId } = useServizio();
const utils = api.useUtils();
const { mutate, isPending } = api.servizio.updateServizio.useMutation({
onSuccess: async () => {
@ -155,6 +155,7 @@ const DocCheckpoint = () => {
await utils.servizio.getServizio.invalidate({
servizioId: servizio.servizio_id,
});
await utils.servizio.getPacksSolution.invalidate({ servizioId });
},
onError: (err) => {
toast.error(`Errore aggiornamento servizio: ${err.message}`);

View file

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

View file

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

View file

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

View file

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