diff --git a/apps/web/app/(marketing)/layout.tsx b/apps/web/app/(marketing)/layout.tsx index c6916d2d3..260c7e727 100644 --- a/apps/web/app/(marketing)/layout.tsx +++ b/apps/web/app/(marketing)/layout.tsx @@ -5,11 +5,7 @@ import { SiteHeader } from '~/(marketing)/_components/site-header'; import { withI18n } from '~/lib/i18n/with-i18n'; async function SiteLayout(props: React.PropsWithChildren) { - const client = getSupabaseServerComponentClient(); - - const { - data: { user }, - } = await client.auth.getUser(); + const user = await getUser(); return ( <> @@ -23,3 +19,18 @@ async function SiteLayout(props: React.PropsWithChildren) { } export default withI18n(SiteLayout); + +async function getUser() { + const client = getSupabaseServerComponentClient(); + + // Supabase is going to be complaining about this line + // since we use getSession instead of getUser + // we don't quite care because we only need to know if the user is logged in + // to display the user menu in the header. + // There is no need to ping the server while navigating to marketing pages. + const { + data: { session }, + } = await client.auth.getSession(); + + return session?.user; +}