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:
@@ -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() {
|
||||
|
||||
@@ -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 }),
|
||||
])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user