diff --git a/packages/trpc/server/routers/viewer/teams/resendInvitation.handler.ts b/packages/trpc/server/routers/viewer/teams/resendInvitation.handler.ts index 001d8946bd..12603c88c6 100644 --- a/packages/trpc/server/routers/viewer/teams/resendInvitation.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/resendInvitation.handler.ts @@ -1,7 +1,9 @@ import { sendTeamInviteEmail } from "@calcom/emails"; +import { UserRepository } from "@calcom/features/users/repositories/UserRepository"; import { WEBAPP_URL } from "@calcom/lib/constants"; import { getTranslation } from "@calcom/lib/server/i18n"; import { VerificationTokenRepository } from "@calcom/lib/server/repository/verificationToken"; +import { prisma } from "@calcom/prisma"; import type { TrpcSessionUser } from "@calcom/trpc/server/types"; import { ensureAtleastAdminPermissions, getTeamOrThrow } from "./inviteMember/utils"; @@ -37,15 +39,24 @@ export const resendInvitationHandler = async ({ ctx, input }: InviteMemberOption } const inviteTeamOptions = { - joinLink: `${WEBAPP_URL}/teams?token=${verificationToken?.token}&autoAccept=true`, + joinLink: `${WEBAPP_URL}/auth/login?callbackUrl=/settings/teams`, isCalcomMember: true, isAutoJoin: false, }; if (verificationToken) { - // Token only exists if user is CAL user but hasn't completed onboarding. - inviteTeamOptions.joinLink = `${WEBAPP_URL}/signup?token=${verificationToken.token}&callbackUrl=/getting-started`; - inviteTeamOptions.isCalcomMember = false; + try { + const user = await new UserRepository(prisma).findByEmail({ email: input.email }); + + if (user?.completedOnboarding) { + inviteTeamOptions.joinLink = `${WEBAPP_URL}/teams?token=${verificationToken.token}&autoAccept=true`; + } else { + inviteTeamOptions.joinLink = `${WEBAPP_URL}/signup?token=${verificationToken.token}&callbackUrl=/getting-started`; + inviteTeamOptions.isCalcomMember = false; + } + } catch (error) { + console.error("[resendInvitationHandler] Error fetching user: ", error); + } } const translation = await getTranslation(input.language ?? "en", "common");