diff --git a/apps/dashboard/src/app/login/page.tsx b/apps/dashboard/src/app/login/page.tsx
index 51d6b14f..9b1eaa2c 100644
--- a/apps/dashboard/src/app/login/page.tsx
+++ b/apps/dashboard/src/app/login/page.tsx
@@ -8,7 +8,7 @@ import type { SearchParams } from "nuqs/server";
import { signIn } from "@/lib/auth";
import { LoginButton } from "./_components/login-button";
-import MagicLinkForm from "./_components/magic-link-form";
+import { MagicLinkForm } from "./_components/magic-link-form";
import { SsoForm } from "./_components/sso-form";
import { searchParamsCache } from "./search-params";
@@ -53,7 +53,7 @@ export default async function Page(props: {
{process.env.NODE_ENV === "development" ||
process.env.SELF_HOST === "true" ? (
-
+
) : null}
diff --git a/packages/api/src/router/email/index.ts b/packages/api/src/router/email/index.ts
index c25b1e3e..a601db9c 100644
--- a/packages/api/src/router/email/index.ts
+++ b/packages/api/src/router/email/index.ts
@@ -134,11 +134,16 @@ export const emailRouter = createTRPCRouter({
if (!_invitation) return;
+ const baseUrl = opts.ctx.req?.nextUrl?.origin
+ ? `${opts.ctx.req.nextUrl.origin}/invite`
+ : undefined;
+
await emailClient.sendTeamInvitation({
to: _invitation.email,
token: _invitation.token,
invitedBy: `${opts.ctx.user.email}`,
workspaceName: opts.ctx.workspace.name || "openstatus",
+ baseUrl,
});
}
}),
diff --git a/packages/emails/src/client.tsx b/packages/emails/src/client.tsx
index 32e753eb..b582f434 100644
--- a/packages/emails/src/client.tsx
+++ b/packages/emails/src/client.tsx
@@ -268,7 +268,9 @@ export class EmailClient {
public async sendTeamInvitation(req: TeamInvitationProps & { to: string }) {
if (env.NODE_ENV === "development") {
+ const inviteUrl = `${req.baseUrl ?? "http://localhost:3000/invite"}?token=${req.token}`;
console.log(`Sending team invitation email to ${req.to}`);
+ console.log(`>>> Team Invitation Link: ${inviteUrl}`);
return;
}