import { dt } from "@scandic-hotels/common/dt" import { Typography } from "@scandic-hotels/design-system/Typography" import { getIntl } from "@/i18n" import { getLang } from "@/i18n/serverContext" import ProgressCardHighestLevel from "./InnerCard/ProgressCardHighestLevel" import ProgressCardLowerLevel from "./InnerCard/ProgressCardLowerLevel" import SuccessCard from "./InnerCard/SuccessCard" import LevelProgressModal from "./LevelProgressModal" import { getLevelProgressData } from "./utils" import { levelProgressCardVariants } from "./variants" import styles from "./levelProgressCard.module.css" import type { levelProgressCardProps } from "./types" export default async function LevelProgressCard({ user, className, color = "Surface/Brand/Primary 1/OnSurface/Default", }: levelProgressCardProps) { if (!user.membership?.membershipLevel) { return null } const intl = await getIntl() const lang = await getLang() const data = await getLevelProgressData(user.membership) const classNames = levelProgressCardVariants({ className, color }) return (

{intl.formatMessage({ id: "myPages.yourLevelProgress", defaultMessage: "Your level progress", })}

{intl.formatMessage( { id: "myPages.validUntilDate", defaultMessage: "Valid until {date}", }, { date: dt(user.membership.tierExpirationDate) .locale(lang) .format("D MMM YYYY"), } )}

{data.type === "highest-complete" && ( )} {data.type === "highest-incomplete" && ( )} {data.type === "lower-level" && ( )}
) }