chore: enhance error handling in sendInvite mutation and invalidate email cache on success

This commit is contained in:
Marco Pedone 2026-01-16 11:52:59 +01:00
parent 6890ed64c7
commit f1a323f478
2 changed files with 24 additions and 10 deletions

View file

@ -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 <div>Errore</div>;

View file

@ -27,6 +27,7 @@ export const inviteRouter = createTRPCRouter({
}),
)
.mutation(async ({ input }) => {
try {
const user = await getUser({ userId: input.id, db });
const token = await createInviteToken(user.email);
@ -40,6 +41,15 @@ export const inviteRouter = createTRPCRouter({
});
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)