From ccdbe03c2f503bf95b819a5005e4198c9a3f28a8 Mon Sep 17 00:00:00 2001 From: Marco Pedone Date: Fri, 6 Mar 2026 16:15:47 +0100 Subject: [PATCH] feat: invalidate servizio data cache in multiple components after updates --- apps/infoalloggi/next.config.ts | 3 ++- .../annuncio-interactions/annuncio_interactions.tsx | 1 + .../infoalloggi/src/components/servizio/admin_conferma.tsx | 7 +++++++ .../src/components/servizio/annuncio_actions.tsx | 1 + apps/infoalloggi/src/components/servizio/conferma.tsx | 2 ++ .../src/components/servizio/modale_contatti.tsx | 4 ++++ .../infoalloggi/src/components/servizio/servizi_header.tsx | 2 ++ apps/infoalloggi/src/components/servizio/servizio.tsx | 2 ++ .../src/components/servizio/servizio_actions.tsx | 7 +++++++ apps/infoalloggi/src/providers/ServizioProvider.tsx | 1 + 10 files changed, 29 insertions(+), 1 deletion(-) diff --git a/apps/infoalloggi/next.config.ts b/apps/infoalloggi/next.config.ts index f5d65a5..8e98b17 100644 --- a/apps/infoalloggi/next.config.ts +++ b/apps/infoalloggi/next.config.ts @@ -46,7 +46,8 @@ async function createNextConfig(): Promise { headers: [ { key: "Cache-Control", - value: "no-cache, no-store, must-revalidate", + value: + "no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate", }, { key: "X-API-Version", diff --git a/apps/infoalloggi/src/components/annuncio-interactions/annuncio_interactions.tsx b/apps/infoalloggi/src/components/annuncio-interactions/annuncio_interactions.tsx index eeb466c..620b4d5 100644 --- a/apps/infoalloggi/src/components/annuncio-interactions/annuncio_interactions.tsx +++ b/apps/infoalloggi/src/components/annuncio-interactions/annuncio_interactions.tsx @@ -199,6 +199,7 @@ export const InteressatoButtonServizio = ({ const invalidateAll = async () => { await utils.intrests.getUserInterests.invalidate(); await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); + await utils.servizio.getServizioData.invalidate({servizioId}); await utils.servizio.getAnnunciAvailableToAdd.invalidate({ servizioId, }); diff --git a/apps/infoalloggi/src/components/servizio/admin_conferma.tsx b/apps/infoalloggi/src/components/servizio/admin_conferma.tsx index d0d677d..7758fae 100644 --- a/apps/infoalloggi/src/components/servizio/admin_conferma.tsx +++ b/apps/infoalloggi/src/components/servizio/admin_conferma.tsx @@ -117,6 +117,7 @@ const DebugActions = () => { await utils.servizio.getAllServizioAnnunci.invalidate({ userId: userId, }); + await utils.servizio.getServizioData.invalidate({ servizioId }); await utils.servizio.getServizio.invalidate({ servizioId, }); @@ -553,6 +554,7 @@ const TransitorioSection = () => { toast.success("Servizio modificato con successo"); await utils.servizio.getUserServizi.invalidate(); await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); + await utils.servizio.getServizioData.invalidate({ servizioId }); await utils.servizio.getPacksSolution.invalidate({ servizioId }); }, }); @@ -619,6 +621,7 @@ const StabileSection = () => { toast.success("Servizio modificato con successo"); await utils.servizio.getUserServizi.invalidate(); await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); + await utils.servizio.getServizioData.invalidate({ servizioId }); await utils.servizio.getPacksSolution.invalidate({ servizioId }); }, }); @@ -676,6 +679,7 @@ const GeneralSection = () => { toast.success("Servizio modificato con successo"); await utils.servizio.getUserServizi.invalidate(); await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); + await utils.servizio.getServizioData.invalidate({ servizioId }); await utils.servizio.getPacksSolution.invalidate({ servizioId }); }, }); @@ -797,6 +801,9 @@ const SendConferma = () => { api.servizio.adminUpdateConfermaStatus.useMutation({ onSuccess: async () => { await utils.servizio.getAllServizioAnnunci.invalidate(); + await utils.servizio.getServizioData.invalidate({ + servizioId: servizio.servizio_id, + }); await utils.servizio.getServizio.invalidate({ servizioId: servizio.servizio_id, }); diff --git a/apps/infoalloggi/src/components/servizio/annuncio_actions.tsx b/apps/infoalloggi/src/components/servizio/annuncio_actions.tsx index 4043170..3a3bf62 100644 --- a/apps/infoalloggi/src/components/servizio/annuncio_actions.tsx +++ b/apps/infoalloggi/src/components/servizio/annuncio_actions.tsx @@ -43,6 +43,7 @@ export const AdminActions = () => { }, onSuccess: async () => { await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); + await utils.servizio.getServizioData.invalidate({ servizioId }); await utils.servizio.getCompatibileAnnunci.invalidate({ servizioId, }); diff --git a/apps/infoalloggi/src/components/servizio/conferma.tsx b/apps/infoalloggi/src/components/servizio/conferma.tsx index 5302e5c..681e27c 100644 --- a/apps/infoalloggi/src/components/servizio/conferma.tsx +++ b/apps/infoalloggi/src/components/servizio/conferma.tsx @@ -108,6 +108,7 @@ const InvioConferma = ({ closeModal }: { closeModal: () => void }) => { }); await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); + await utils.servizio.getServizioData.invalidate({ servizioId }); closeModal(); }, }, @@ -151,6 +152,7 @@ const DocCheckpoint = () => { await utils.servizio.getAllServizioAnnunci.invalidate({ userId, }); + await utils.servizio.getServizioData.invalidate({servizioId}); await utils.storage.retrieveUserFileData.invalidate({ userId }); await utils.servizio.getServizio.invalidate({ servizioId: servizio.servizio_id, diff --git a/apps/infoalloggi/src/components/servizio/modale_contatti.tsx b/apps/infoalloggi/src/components/servizio/modale_contatti.tsx index e4bd8e2..462b783 100644 --- a/apps/infoalloggi/src/components/servizio/modale_contatti.tsx +++ b/apps/infoalloggi/src/components/servizio/modale_contatti.tsx @@ -90,6 +90,9 @@ const DocCheckpoint = () => { await utils.servizio.getAllServizioAnnunci.invalidate({ userId, }); + await utils.servizio.getServizioData.invalidate({ + servizioId: servizio.servizio_id, + }); await utils.storage.retrieveUserFileData.invalidate({ userId }); await utils.servizio.getServizio.invalidate({ servizioId: servizio.servizio_id, @@ -214,6 +217,7 @@ const PreUnlock = () => { await utils.servizio.getAllServizioAnnunci.invalidate({ userId, }); + await utils.servizio.getServizioData.invalidate({ servizioId }); }, }, ); diff --git a/apps/infoalloggi/src/components/servizio/servizi_header.tsx b/apps/infoalloggi/src/components/servizio/servizi_header.tsx index 4bc6553..d5bd57e 100644 --- a/apps/infoalloggi/src/components/servizio/servizi_header.tsx +++ b/apps/infoalloggi/src/components/servizio/servizi_header.tsx @@ -56,6 +56,7 @@ const NewServizioModal = ({ toast.success("Servizio creato con successo"); await utils.servizio.getUserServizi.invalidate(); await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); + setEditData(undefined); setOpen(false); }, @@ -69,6 +70,7 @@ const NewServizioModal = ({ 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, }); diff --git a/apps/infoalloggi/src/components/servizio/servizio.tsx b/apps/infoalloggi/src/components/servizio/servizio.tsx index adc4c88..32031ee 100644 --- a/apps/infoalloggi/src/components/servizio/servizio.tsx +++ b/apps/infoalloggi/src/components/servizio/servizio.tsx @@ -235,6 +235,7 @@ const Main = () => { onSuccess: async () => { toast.success("Servizio modificato con successo"); await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); + await utils.servizio.getServizioData.invalidate({ servizioId }); await utils.servizio.getPacksSolution.invalidate({ servizioId }); }, }); @@ -247,6 +248,7 @@ const Main = () => { }, onSuccess: async () => { await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); + await utils.servizio.getServizioData.invalidate({ servizioId }); await utils.servizio.getCompatibileAnnunci.invalidate({ servizioId, }); diff --git a/apps/infoalloggi/src/components/servizio/servizio_actions.tsx b/apps/infoalloggi/src/components/servizio/servizio_actions.tsx index 7355fc8..f5d99f8 100644 --- a/apps/infoalloggi/src/components/servizio/servizio_actions.tsx +++ b/apps/infoalloggi/src/components/servizio/servizio_actions.tsx @@ -226,6 +226,7 @@ const AddAnnuncio = ({ }, onSuccess: async () => { await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); + await utils.servizio.getServizioData.invalidate({ servizioId }); await utils.servizio.getAnnunciAvailableToAdd.invalidate({ servizioId, }); @@ -334,6 +335,9 @@ const InterruzioneServizio = () => { }, onSuccess: async () => { await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); + await utils.servizio.getServizioData.invalidate({ + servizioId: servizio.servizio_id, + }); toast.success("Interruzione richiesta"); }, }); @@ -389,6 +393,7 @@ const EditParametri = () => { onSuccess: async () => { toast.success("Servizio modificato con successo"); await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); + await utils.servizio.getServizioData.invalidate({ servizioId }); await utils.servizio.getServizio.invalidate({ servizioId }); await utils.servizio.getCompatibileAnnunci.invalidate({ servizioId, @@ -461,6 +466,7 @@ const EditServizioAdmin = () => { toast.success("Servizio modificato con successo"); await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); await utils.servizio.getServizio.invalidate({ servizioId }); + await utils.servizio.getServizioData.invalidate({ servizioId }); await utils.servizio.getCompatibileAnnunci.invalidate({ servizioId, }); @@ -475,6 +481,7 @@ const EditServizioAdmin = () => { onSuccess: async () => { toast.success("Servizio rimosso con successo"); await utils.servizio.getAllServizioAnnunci.invalidate({ userId }); + await utils.servizio.getServizioData.invalidate({ servizioId }); await utils.servizio.getServizio.invalidate({ servizioId }); }, }); diff --git a/apps/infoalloggi/src/providers/ServizioProvider.tsx b/apps/infoalloggi/src/providers/ServizioProvider.tsx index 01fd420..6d0e7bb 100644 --- a/apps/infoalloggi/src/providers/ServizioProvider.tsx +++ b/apps/infoalloggi/src/providers/ServizioProvider.tsx @@ -73,6 +73,7 @@ export const ServizioAnnuncioProvider = ({ await utils.servizio.getAllServizioAnnunci.invalidate({ userId: userId, }); + await utils.servizio.getServizioData.invalidate({ servizioId }); await utils.servizio.getServizio.invalidate({ servizioId, });