diff --git a/apps/web/src/app/[locale]/layout.tsx b/apps/web/src/app/[locale]/layout.tsx index fe7f293be..08b0e7d42 100644 --- a/apps/web/src/app/[locale]/layout.tsx +++ b/apps/web/src/app/[locale]/layout.tsx @@ -4,7 +4,6 @@ import "../../style.css"; import { Toaster } from "@rallly/ui/toaster"; import type { Viewport } from "next"; import { Inter } from "next/font/google"; -import { redirect } from "next/navigation"; import React from "react"; import { TimeZoneChangeDetector } from "@/app/[locale]/timezone-change-detector"; @@ -33,10 +32,6 @@ export default async function Root({ }) { const session = await getServerSession(); - if (!session) { - redirect("/login"); - } - return ( diff --git a/apps/web/src/trpc/server/create-ssr-helper.ts b/apps/web/src/trpc/server/create-ssr-helper.ts index 48ce488b0..11805fc58 100644 --- a/apps/web/src/trpc/server/create-ssr-helper.ts +++ b/apps/web/src/trpc/server/create-ssr-helper.ts @@ -1,5 +1,6 @@ import { createServerSideHelpers } from "@trpc/react-query/server"; import { TRPCError } from "@trpc/server"; +import { redirect } from "next/navigation"; import superjson from "superjson"; import { getServerSession } from "@/auth"; @@ -18,7 +19,7 @@ async function createContext(): Promise { }); } - const res = { + return { user: { id: session.user.id, isGuest: session.user.email === null, @@ -27,8 +28,6 @@ async function createContext(): Promise { getEmailClient: () => getEmailClient(session.user.locale ?? undefined), }, }; - - return res; } /** @@ -36,9 +35,14 @@ async function createContext(): Promise { * @description use this function to call tRPC procedures server-side and hydrate `react-query`'s cache * @see https://trpc.io/docs/client/nextjs/server-side-helpers#1-internal-router */ -export const createSSRHelper = async () => - createServerSideHelpers({ - router: appRouter, - ctx: await createContext(), - transformer: superjson, - }); +export const createSSRHelper = async () => { + try { + return createServerSideHelpers({ + router: appRouter, + ctx: await createContext(), + transformer: superjson, + }); + } catch (error) { + return redirect("/login"); + } +};