Merged in feat/sw-1825-my-pages-sas-link-visibility (pull request #1479)

* Use SAS membership for my pages sas link visibility

Approved-by: Joakim Jäderberg
This commit is contained in:
Anton Gunnarsson
2025-03-06 09:45:08 +00:00
parent c92529fcde
commit 47785aa07a
2 changed files with 22 additions and 15 deletions

View File

@@ -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<MyPagesLink[]> => {
async ({
lang,
memberships,
}: {
lang: Lang
memberships: Membership[]
}): Promise<MyPagesLink[]> => {
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() {

View File

@@ -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 }),
])