import { Lock } from "react-feather" import { MembershipLevelEnum } from "@/constants/membershipLevels" import { serverClient } from "@/lib/trpc/server" import SectionContainer from "@/components/Section/Container" import SectionHeader from "@/components/Section/Header" import SectionLink from "@/components/Section/Link" import Chip from "@/components/TempDesignSystem/Chip" import Grids from "@/components/TempDesignSystem/Grids" import BiroScript from "@/components/TempDesignSystem/Text/BiroScript" import Subtitle from "@/components/TempDesignSystem/Text/Subtitle" import { getIntl } from "@/i18n" import { getMembershipLevelObject } from "@/utils/membershipLevel" import styles from "./next.module.css" import { AccountPageComponentProps } from "@/types/components/myPages/myPage/accountPage" export default async function NextLevelBenefitsBlock({ title, subtitle, lang, link, }: AccountPageComponentProps) { const { formatMessage } = await getIntl() const user = await serverClient().user.get() if (!user) { return null } const nextLevel = getMembershipLevelObject( user.memberships[0].membershipLevel as MembershipLevelEnum, lang, "nextLevel" ) if (!nextLevel) { // TODO: handle this case, when missing or when user is top level? return null } // TODO: how to handle different count of unlockable benefits? return ( {nextLevel.benefits.map((benefit) => (
{formatMessage({ id: "Level up to unlock" })}
{formatMessage({ id: "As our" })} {nextLevel.name} {" "} {benefit.title}
))}
) }