diff --git a/apps/infoalloggi/src/components/area-riservata/userViewHeader.tsx b/apps/infoalloggi/src/components/area-riservata/userViewHeader.tsx
index d810a2e..c272adc 100644
--- a/apps/infoalloggi/src/components/area-riservata/userViewHeader.tsx
+++ b/apps/infoalloggi/src/components/area-riservata/userViewHeader.tsx
@@ -31,12 +31,16 @@ export const UserViewHeader = () => {
router.reload();
},
});
+ const utils = api.useUtils();
const { mutateAsync: sendInvite } = api.invite.sendInvite.useMutation({
onError: (error) => {
toast.error(error.message);
},
onSuccess: async () => {
toast.success("Email inviata con successo");
+ await utils.comunicazioni.getEmails.invalidate({
+ userId: data?.id || "",
+ });
},
});
if (!data) return
Errore
;
diff --git a/apps/infoalloggi/src/server/api/routers/invite.ts b/apps/infoalloggi/src/server/api/routers/invite.ts
index e6bc2ed..3b5b594 100644
--- a/apps/infoalloggi/src/server/api/routers/invite.ts
+++ b/apps/infoalloggi/src/server/api/routers/invite.ts
@@ -27,19 +27,29 @@ export const inviteRouter = createTRPCRouter({
}),
)
.mutation(async ({ input }) => {
- const user = await getUser({ userId: input.id, db });
- const token = await createInviteToken(user.email);
+ try {
+ const user = await getUser({ userId: input.id, db });
+ const token = await createInviteToken(user.email);
- const inviteUrl = `${env.BASE_URL}/auth/accetta-invito/${token}`;
+ const inviteUrl = `${env.BASE_URL}/auth/accetta-invito/${token}`;
- await sendInvitoEmail({
- userId: input.id,
- email: user.email,
- nome: user.nome,
- inviteUrl,
- });
+ await sendInvitoEmail({
+ userId: input.id,
+ email: user.email,
+ nome: user.nome,
+ inviteUrl,
+ });
- return { success: true };
+ return { success: true };
+ } catch (e) {
+ console.error("Error in sendInvite:", e);
+ throw new TRPCError({
+ code: "INTERNAL_SERVER_ERROR",
+ message:
+ "Errore durante l'invio dell'invito: " +
+ (e instanceof Error ? e.message : "Unknown error"),
+ });
+ }
}),
// Verify invite token (public - user clicking the link)