From 47785aa07aa1fe1e5c86ec60c1a480b5be19cc0f Mon Sep 17 00:00:00 2001 From: Anton Gunnarsson Date: Thu, 6 Mar 2025 09:45:08 +0000 Subject: [PATCH] Merged in feat/sw-1825-my-pages-sas-link-visibility (pull request #1479) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Use SAS membership for my pages sas link visibility Approved-by: Joakim Jäderberg --- .../navigation/mypages/getPrimaryLinks.ts | 29 ++++++++++--------- .../routers/navigation/mypages/index.ts | 8 ++++- 2 files changed, 22 insertions(+), 15 deletions(-) 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 }), ])