refactor: remove redundant getServizio invalidations across components
This commit is contained in:
parent
ccdbe03c2f
commit
b32ebf9fde
14 changed files with 60 additions and 117 deletions
|
|
@ -118,9 +118,6 @@ const DebugActions = () => {
|
||||||
userId: userId,
|
userId: userId,
|
||||||
});
|
});
|
||||||
await utils.servizio.getServizioData.invalidate({ servizioId });
|
await utils.servizio.getServizioData.invalidate({ servizioId });
|
||||||
await utils.servizio.getServizio.invalidate({
|
|
||||||
servizioId,
|
|
||||||
});
|
|
||||||
|
|
||||||
toast.success("Dati salvati con successo");
|
toast.success("Dati salvati con successo");
|
||||||
},
|
},
|
||||||
|
|
@ -461,11 +458,9 @@ const Caparra = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const MotivazioneSection = () => {
|
const MotivazioneSection = () => {
|
||||||
const { servizioId } = useServizio();
|
const { servizio } = useServizio();
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
const { data: servizio } = api.servizio.getServizio.useQuery({ servizioId });
|
|
||||||
|
|
||||||
if (!servizio) return null;
|
if (!servizio) return null;
|
||||||
return (
|
return (
|
||||||
<Card>
|
<Card>
|
||||||
|
|
@ -804,9 +799,7 @@ const SendConferma = () => {
|
||||||
await utils.servizio.getServizioData.invalidate({
|
await utils.servizio.getServizioData.invalidate({
|
||||||
servizioId: servizio.servizio_id,
|
servizioId: servizio.servizio_id,
|
||||||
});
|
});
|
||||||
await utils.servizio.getServizio.invalidate({
|
|
||||||
servizioId: servizio.servizio_id,
|
|
||||||
});
|
|
||||||
toast.success("Status aggiornato con successo");
|
toast.success("Status aggiornato con successo");
|
||||||
},
|
},
|
||||||
onError: (error) => {
|
onError: (error) => {
|
||||||
|
|
|
||||||
|
|
@ -152,11 +152,9 @@ const DocCheckpoint = () => {
|
||||||
await utils.servizio.getAllServizioAnnunci.invalidate({
|
await utils.servizio.getAllServizioAnnunci.invalidate({
|
||||||
userId,
|
userId,
|
||||||
});
|
});
|
||||||
await utils.servizio.getServizioData.invalidate({servizioId});
|
await utils.servizio.getServizioData.invalidate({ servizioId });
|
||||||
await utils.storage.retrieveUserFileData.invalidate({ userId });
|
await utils.storage.retrieveUserFileData.invalidate({ userId });
|
||||||
await utils.servizio.getServizio.invalidate({
|
|
||||||
servizioId: servizio.servizio_id,
|
|
||||||
});
|
|
||||||
await utils.servizio.getPacksSolution.invalidate({ servizioId });
|
await utils.servizio.getPacksSolution.invalidate({ servizioId });
|
||||||
},
|
},
|
||||||
onError: (err) => {
|
onError: (err) => {
|
||||||
|
|
|
||||||
|
|
@ -94,9 +94,6 @@ const DocCheckpoint = () => {
|
||||||
servizioId: servizio.servizio_id,
|
servizioId: servizio.servizio_id,
|
||||||
});
|
});
|
||||||
await utils.storage.retrieveUserFileData.invalidate({ userId });
|
await utils.storage.retrieveUserFileData.invalidate({ userId });
|
||||||
await utils.servizio.getServizio.invalidate({
|
|
||||||
servizioId: servizio.servizio_id,
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
onError: (err) => {
|
onError: (err) => {
|
||||||
toast.error(`Errore aggiornamento servizio: ${err.message}`);
|
toast.error(`Errore aggiornamento servizio: ${err.message}`);
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ const NewServizioModal = ({
|
||||||
toast.success("Servizio creato con successo");
|
toast.success("Servizio creato con successo");
|
||||||
await utils.servizio.getUserServizi.invalidate();
|
await utils.servizio.getUserServizi.invalidate();
|
||||||
await utils.servizio.getAllServizioAnnunci.invalidate({ userId });
|
await utils.servizio.getAllServizioAnnunci.invalidate({ userId });
|
||||||
|
|
||||||
setEditData(undefined);
|
setEditData(undefined);
|
||||||
setOpen(false);
|
setOpen(false);
|
||||||
},
|
},
|
||||||
|
|
@ -70,10 +70,10 @@ const NewServizioModal = ({
|
||||||
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.getServizioData.invalidate({ servizioId: data.servizio_id });
|
await utils.servizio.getServizioData.invalidate({
|
||||||
await utils.servizio.getServizio.invalidate({
|
|
||||||
servizioId: data.servizio_id,
|
servizioId: data.servizio_id,
|
||||||
});
|
});
|
||||||
|
|
||||||
await utils.servizio.getCompatibileAnnunci.invalidate({
|
await utils.servizio.getCompatibileAnnunci.invalidate({
|
||||||
servizioId: data.servizio_id,
|
servizioId: data.servizio_id,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -235,6 +235,7 @@ const Main = () => {
|
||||||
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.getServizioData.invalidate({ servizioId });
|
await utils.servizio.getServizioData.invalidate({ servizioId });
|
||||||
await utils.servizio.getPacksSolution.invalidate({ servizioId });
|
await utils.servizio.getPacksSolution.invalidate({ servizioId });
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -383,7 +383,7 @@ const EditParametri = () => {
|
||||||
const { servizioId, userId, isAdmin, servizio } = useServizio();
|
const { servizioId, userId, isAdmin, servizio } = useServizio();
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const [openEditParametri, setOpenEditParametri] = useState(false);
|
const [openEditParametri, setOpenEditParametri] = useState(false);
|
||||||
const { data, isLoading } = api.servizio.getServizio.useQuery({ servizioId });
|
|
||||||
const utils = api.useUtils();
|
const utils = api.useUtils();
|
||||||
|
|
||||||
const { mutate: update } = api.servizio.updateServizio.useMutation({
|
const { mutate: update } = api.servizio.updateServizio.useMutation({
|
||||||
|
|
@ -394,7 +394,7 @@ const EditParametri = () => {
|
||||||
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.getServizioData.invalidate({ servizioId });
|
await utils.servizio.getServizioData.invalidate({ servizioId });
|
||||||
await utils.servizio.getServizio.invalidate({ servizioId });
|
|
||||||
await utils.servizio.getCompatibileAnnunci.invalidate({
|
await utils.servizio.getCompatibileAnnunci.invalidate({
|
||||||
servizioId,
|
servizioId,
|
||||||
});
|
});
|
||||||
|
|
@ -437,15 +437,11 @@ const EditParametri = () => {
|
||||||
</CredenzaDescription>
|
</CredenzaDescription>
|
||||||
</CredenzaHeader>
|
</CredenzaHeader>
|
||||||
<CredenzaBody className="max-h-[80vh] w-full max-w-3xl overflow-y-auto pb-5 sm:max-w-5xl">
|
<CredenzaBody className="max-h-[80vh] w-full max-w-3xl overflow-y-auto pb-5 sm:max-w-5xl">
|
||||||
{isLoading ? (
|
<FormNewServizio
|
||||||
<LoadingPage />
|
initialData={servizio}
|
||||||
) : (
|
isLimited={!isAdmin}
|
||||||
<FormNewServizio
|
onSubmit={onSubmit}
|
||||||
initialData={data}
|
/>
|
||||||
isLimited={!isAdmin}
|
|
||||||
onSubmit={onSubmit}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
</CredenzaBody>
|
</CredenzaBody>
|
||||||
</CredenzaContent>
|
</CredenzaContent>
|
||||||
</Credenza>
|
</Credenza>
|
||||||
|
|
@ -455,7 +451,7 @@ const EditParametri = () => {
|
||||||
const EditServizioAdmin = () => {
|
const EditServizioAdmin = () => {
|
||||||
const { servizioId, userId, servizio } = useServizio();
|
const { servizioId, userId, servizio } = useServizio();
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
const { data, isLoading } = api.servizio.getServizio.useQuery({ servizioId });
|
|
||||||
const utils = api.useUtils();
|
const utils = api.useUtils();
|
||||||
|
|
||||||
const { mutate: update } = api.servizio.updateServizio.useMutation({
|
const { mutate: update } = api.servizio.updateServizio.useMutation({
|
||||||
|
|
@ -465,7 +461,7 @@ const EditServizioAdmin = () => {
|
||||||
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.getServizio.invalidate({ servizioId });
|
|
||||||
await utils.servizio.getServizioData.invalidate({ servizioId });
|
await utils.servizio.getServizioData.invalidate({ servizioId });
|
||||||
await utils.servizio.getCompatibileAnnunci.invalidate({
|
await utils.servizio.getCompatibileAnnunci.invalidate({
|
||||||
servizioId,
|
servizioId,
|
||||||
|
|
@ -482,7 +478,6 @@ const EditServizioAdmin = () => {
|
||||||
toast.success("Servizio rimosso con successo");
|
toast.success("Servizio rimosso con successo");
|
||||||
await utils.servizio.getAllServizioAnnunci.invalidate({ userId });
|
await utils.servizio.getAllServizioAnnunci.invalidate({ userId });
|
||||||
await utils.servizio.getServizioData.invalidate({ servizioId });
|
await utils.servizio.getServizioData.invalidate({ servizioId });
|
||||||
await utils.servizio.getServizio.invalidate({ servizioId });
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -511,11 +506,8 @@ const EditServizioAdmin = () => {
|
||||||
</CredenzaDescription>
|
</CredenzaDescription>
|
||||||
</CredenzaHeader>
|
</CredenzaHeader>
|
||||||
<CredenzaBody className="max-h-[80vh] w-full space-y-2 overflow-y-auto pb-5">
|
<CredenzaBody className="max-h-[80vh] w-full space-y-2 overflow-y-auto pb-5">
|
||||||
{isLoading ? (
|
<FormEditServizio initialData={servizio} onSubmit={onSubmit} />
|
||||||
<LoadingPage />
|
|
||||||
) : (
|
|
||||||
<FormEditServizio initialData={data} onSubmit={onSubmit} />
|
|
||||||
)}
|
|
||||||
<Collapsible>
|
<Collapsible>
|
||||||
<CollapsibleTrigger asChild>
|
<CollapsibleTrigger asChild>
|
||||||
<Button variant="warning">
|
<Button variant="warning">
|
||||||
|
|
|
||||||
|
|
@ -322,7 +322,7 @@ export const FormNewServizioAcquisto = ({
|
||||||
await router.push(`/area-riservata/admin/user-view/ordini/${userId}`);
|
await router.push(`/area-riservata/admin/user-view/ordini/${userId}`);
|
||||||
} else {
|
} else {
|
||||||
await router.push(
|
await router.push(
|
||||||
`/area-riservata/admin/user-view/ricerca/${userId}`,
|
`/area-riservata/admin/user-view/servizio/${userId}/${initialData.servizio.servizio_id}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -78,16 +78,12 @@ export const getServerSideProps = (async (context) => {
|
||||||
await helper.trpc.servizio.getAcquistoData.prefetch({
|
await helper.trpc.servizio.getAcquistoData.prefetch({
|
||||||
servizioId: parsed.data,
|
servizioId: parsed.data,
|
||||||
});
|
});
|
||||||
const servizio = await helper.trpc.servizio.getServizio.fetch({
|
const { available, userId } =
|
||||||
servizioId: parsed.data,
|
await helper.trpc.servizio.isOnboardAvailable.fetch({
|
||||||
});
|
servizioId: parsed.data,
|
||||||
|
});
|
||||||
|
|
||||||
if (
|
if (!available) {
|
||||||
!servizio ||
|
|
||||||
servizio.isOkAcconto ||
|
|
||||||
servizio.isInterrotto ||
|
|
||||||
servizio.decorrenza !== null
|
|
||||||
) {
|
|
||||||
return {
|
return {
|
||||||
redirect: {
|
redirect: {
|
||||||
destination: `/area-riservata/dashboard`,
|
destination: `/area-riservata/dashboard`,
|
||||||
|
|
@ -99,7 +95,7 @@ export const getServerSideProps = (async (context) => {
|
||||||
props: {
|
props: {
|
||||||
servizioId: parsed.data,
|
servizioId: parsed.data,
|
||||||
trpcState: helper.trpc.dehydrate(),
|
trpcState: helper.trpc.dehydrate(),
|
||||||
userId: servizio.user_id,
|
userId,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ export const getServerSideProps = (async (context) => {
|
||||||
|
|
||||||
const helper = await TrpcAuthedFetchingIstance({ access_token });
|
const helper = await TrpcAuthedFetchingIstance({ access_token });
|
||||||
if (helper) {
|
if (helper) {
|
||||||
await helper.trpc.servizio.getServizio.prefetch({
|
await helper.trpc.servizio.getServizioData.prefetch({
|
||||||
servizioId,
|
servizioId,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,7 @@ export const getServerSideProps = (async (context) => {
|
||||||
|
|
||||||
const helper = await TrpcAuthedFetchingIstance({ access_token });
|
const helper = await TrpcAuthedFetchingIstance({ access_token });
|
||||||
if (helper) {
|
if (helper) {
|
||||||
await helper.trpc.servizio.getServizio.prefetch({
|
await helper.trpc.servizio.getServizioData.prefetch({
|
||||||
servizioId,
|
servizioId,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -81,16 +81,12 @@ export const getServerSideProps = (async (context) => {
|
||||||
await helper.trpc.servizio.getAcquistoData.prefetch({
|
await helper.trpc.servizio.getAcquistoData.prefetch({
|
||||||
servizioId: parsed.data,
|
servizioId: parsed.data,
|
||||||
});
|
});
|
||||||
const servizio = await helper.trpc.servizio.getServizio.fetch({
|
const { available, userId: _ } =
|
||||||
servizioId: parsed.data,
|
await helper.trpc.servizio.isOnboardAvailable.fetch({
|
||||||
});
|
servizioId: parsed.data,
|
||||||
|
});
|
||||||
|
|
||||||
if (
|
if (!available) {
|
||||||
!servizio ||
|
|
||||||
servizio.isOkAcconto ||
|
|
||||||
servizio.isInterrotto ||
|
|
||||||
servizio.decorrenza !== null
|
|
||||||
) {
|
|
||||||
return {
|
return {
|
||||||
redirect: {
|
redirect: {
|
||||||
destination: "/area-riservata/dashboard",
|
destination: "/area-riservata/dashboard",
|
||||||
|
|
|
||||||
|
|
@ -74,9 +74,6 @@ export const ServizioAnnuncioProvider = ({
|
||||||
userId: userId,
|
userId: userId,
|
||||||
});
|
});
|
||||||
await utils.servizio.getServizioData.invalidate({ servizioId });
|
await utils.servizio.getServizioData.invalidate({ servizioId });
|
||||||
await utils.servizio.getServizio.invalidate({
|
|
||||||
servizioId,
|
|
||||||
});
|
|
||||||
|
|
||||||
toast.success("Dati salvati con successo");
|
toast.success("Dati salvati con successo");
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -185,16 +185,37 @@ export const servizioRouter = createTRPCRouter({
|
||||||
.query(async ({ input }) => {
|
.query(async ({ input }) => {
|
||||||
return await getOrdini(input.userId);
|
return await getOrdini(input.userId);
|
||||||
}),
|
}),
|
||||||
|
isOnboardAvailable: protectedProcedure
|
||||||
getServizio: protectedProcedure
|
|
||||||
.input(
|
.input(
|
||||||
z.object({
|
z.object({
|
||||||
servizioId: zServizioId,
|
servizioId: zServizioId,
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
.output(
|
||||||
|
z.discriminatedUnion("available", [
|
||||||
|
z.object({
|
||||||
|
available: z.literal(true),
|
||||||
|
userId: zUserId,
|
||||||
|
}),
|
||||||
|
z.object({
|
||||||
|
available: z.literal(false),
|
||||||
|
userId: z.null(),
|
||||||
|
}),
|
||||||
|
]),
|
||||||
|
)
|
||||||
.query(async ({ input }) => {
|
.query(async ({ input }) => {
|
||||||
return await getServizioById(input.servizioId);
|
const servizio = await getServizioById(input.servizioId);
|
||||||
|
if (
|
||||||
|
!servizio ||
|
||||||
|
servizio.isOkAcconto ||
|
||||||
|
servizio.isInterrotto ||
|
||||||
|
servizio.decorrenza !== null
|
||||||
|
) {
|
||||||
|
return { available: false, userId: null };
|
||||||
|
}
|
||||||
|
return { available: true, userId: servizio.user_id };
|
||||||
}),
|
}),
|
||||||
|
|
||||||
getServizioAnnuncio: protectedProcedure
|
getServizioAnnuncio: protectedProcedure
|
||||||
.input(
|
.input(
|
||||||
z.object({
|
z.object({
|
||||||
|
|
|
||||||
|
|
@ -711,25 +711,7 @@ type DocRef = {
|
||||||
storageId: string;
|
storageId: string;
|
||||||
ref: UsersStorageUserStorageId | null;
|
ref: UsersStorageUserStorageId | null;
|
||||||
};
|
};
|
||||||
export type ServizioData = Pick<
|
export type ServizioData = Servizio & {
|
||||||
Servizio,
|
|
||||||
| "servizio_id"
|
|
||||||
| "created_at"
|
|
||||||
| "decorrenza"
|
|
||||||
| "tipologia"
|
|
||||||
| "budget"
|
|
||||||
| "permanenza"
|
|
||||||
| "isInterrotto"
|
|
||||||
| "isOkAcconto"
|
|
||||||
| "isOkSaldo"
|
|
||||||
| "isOkConsulenza"
|
|
||||||
| "skipPayment"
|
|
||||||
| "skipControlloDoc"
|
|
||||||
| "skipDocMotivazione"
|
|
||||||
| "n_adulti"
|
|
||||||
| "n_minori"
|
|
||||||
| "entromese"
|
|
||||||
> & {
|
|
||||||
doc_personale_fronte: DocRef | null;
|
doc_personale_fronte: DocRef | null;
|
||||||
doc_personale_retro: DocRef | null;
|
doc_personale_retro: DocRef | null;
|
||||||
doc_motivazione: DocRef | null;
|
doc_motivazione: DocRef | null;
|
||||||
|
|
@ -782,23 +764,8 @@ export const getAllServizioAnnunci = async (
|
||||||
"servizio.user_id",
|
"servizio.user_id",
|
||||||
"users_anagrafica.userid",
|
"users_anagrafica.userid",
|
||||||
)
|
)
|
||||||
|
.selectAll("servizio")
|
||||||
.select((eb) => [
|
.select((eb) => [
|
||||||
"servizio.servizio_id",
|
|
||||||
"servizio.created_at",
|
|
||||||
"servizio.decorrenza",
|
|
||||||
"servizio.tipologia",
|
|
||||||
"servizio.budget",
|
|
||||||
"servizio.permanenza",
|
|
||||||
"servizio.isInterrotto",
|
|
||||||
"servizio.isOkAcconto",
|
|
||||||
"servizio.isOkSaldo",
|
|
||||||
"servizio.isOkConsulenza",
|
|
||||||
"servizio.skipPayment",
|
|
||||||
"servizio.skipControlloDoc",
|
|
||||||
"servizio.skipDocMotivazione",
|
|
||||||
"servizio.n_adulti",
|
|
||||||
"servizio.n_minori",
|
|
||||||
"servizio.entromese",
|
|
||||||
jsonObjectFrom(
|
jsonObjectFrom(
|
||||||
eb
|
eb
|
||||||
.selectFrom("users_storage")
|
.selectFrom("users_storage")
|
||||||
|
|
@ -935,23 +902,8 @@ export const getServizioDataById = async (
|
||||||
"servizio.user_id",
|
"servizio.user_id",
|
||||||
"users_anagrafica.userid",
|
"users_anagrafica.userid",
|
||||||
)
|
)
|
||||||
|
.selectAll("servizio")
|
||||||
.select((eb) => [
|
.select((eb) => [
|
||||||
"servizio.servizio_id",
|
|
||||||
"servizio.created_at",
|
|
||||||
"servizio.decorrenza",
|
|
||||||
"servizio.tipologia",
|
|
||||||
"servizio.budget",
|
|
||||||
"servizio.permanenza",
|
|
||||||
"servizio.isInterrotto",
|
|
||||||
"servizio.isOkAcconto",
|
|
||||||
"servizio.isOkSaldo",
|
|
||||||
"servizio.isOkConsulenza",
|
|
||||||
"servizio.skipPayment",
|
|
||||||
"servizio.skipControlloDoc",
|
|
||||||
"servizio.skipDocMotivazione",
|
|
||||||
"servizio.n_adulti",
|
|
||||||
"servizio.n_minori",
|
|
||||||
"servizio.entromese",
|
|
||||||
jsonObjectFrom(
|
jsonObjectFrom(
|
||||||
eb
|
eb
|
||||||
.selectFrom("users_storage")
|
.selectFrom("users_storage")
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue