diff --git a/apps/scandic-web/server/routers/navigation/mypages/getPrimaryLinks.ts b/apps/scandic-web/server/routers/navigation/mypages/getPrimaryLinks.ts index 73597f81c..17c764ee3 100644 --- a/apps/scandic-web/server/routers/navigation/mypages/getPrimaryLinks.ts +++ b/apps/scandic-web/server/routers/navigation/mypages/getPrimaryLinks.ts @@ -5,18 +5,23 @@ import { env } from "@/env/server" import { getIntl } from "@/i18n" import { safeTry } from "@/utils/safeTry" +import { getEurobonusMembership } from "@/utils/user" +import type { Membership } from "@/types/user" import type { Lang } from "@/constants/languages" import type { MyPagesLink } from "./MyPagesLink" export const getPrimaryLinks = cache( - async ({ lang }: { lang: Lang }): Promise => { + async ({ + lang, + memberships, + }: { + lang: Lang + memberships: Membership[] + }): Promise => { const intl = await getIntl(lang) - const scandicSasPromise = safeTry(isScandicXSASActive()) - const teamMemberPromise = safeTry(showTeamMemberCard()) - - const [showSASLink] = await scandicSasPromise - const [showTeamMemberLink] = await teamMemberPromise + const showSASLink = isScandicXSASActive(memberships) + const [showTeamMemberLink] = await safeTry(showTeamMemberCard()) const menuItems: MyPagesLink[] = [ { @@ -61,16 +66,12 @@ export const getPrimaryLinks = cache( } ) -const isScandicXSASActive = cache(async () => { - async function checkIfLinked() { - // TODO: Implement this check - return true - } - - const isLinked = await checkIfLinked() +const isScandicXSASActive = (memberships: Membership[]) => { + const eurobonusMembership = getEurobonusMembership(memberships) + const isLinked = Boolean(eurobonusMembership) return env.SAS_ENABLED && isLinked -}) +} const showTeamMemberCard = cache(async () => { async function getIsTeamMember() { diff --git a/apps/scandic-web/server/routers/navigation/mypages/index.ts b/apps/scandic-web/server/routers/navigation/mypages/index.ts index 35b151fb0..63983279e 100644 --- a/apps/scandic-web/server/routers/navigation/mypages/index.ts +++ b/apps/scandic-web/server/routers/navigation/mypages/index.ts @@ -4,6 +4,7 @@ import { z } from "zod" import { Lang } from "@/constants/languages" import { safeProtectedProcedure } from "@/server/trpc" +import { getVerifiedUser } from "../../user/query" import { getPrimaryLinks } from "./getPrimaryLinks" import { getSecondaryLinks } from "./getSecondaryLinks" @@ -36,8 +37,13 @@ export const myPagesNavigation = safeProtectedProcedure }) } + const user = await getVerifiedUser({ session: ctx.session }) + if (!user || user.error) { + return null + } + const [primaryLinks, secondaryLinks] = await Promise.all([ - getPrimaryLinks({ lang }), + getPrimaryLinks({ lang, memberships: user.data.memberships }), getSecondaryLinks({ lang }), ])