import { MembershipLevelEnum } from "@scandic-hotels/common/constants/membershipLevels" import { Divider } from "@scandic-hotels/design-system/Divider" import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon" import { Typography } from "@scandic-hotels/design-system/Typography" import { getEurobonusMembership } from "@scandic-hotels/trpc/routers/user/helpers" import { membershipLevels } from "@/constants/membershipLevels" import MembershipLevelIcon from "@/components/Levels/Icon" import { getIntl } from "@/i18n" import { getSasTierExpirationDate } from "@/utils/sas" import SasBoostStatus from "./SasBoostStatus" import styles from "./membershipOverviewCard.module.css" import type { User } from "@scandic-hotels/trpc/types/user" interface MembershipOverviewCardProps { user: User } export default async function MembershipOverviewCard({ user, }: MembershipOverviewCardProps) { const intl = await getIntl() if (!user.membership?.membershipLevel) { return null } const pointsToSpendText = typeof user.membership.currentPoints === "number" ? intl.formatNumber(user.membership.currentPoints) : intl.formatMessage({ id: "common.NA", defaultMessage: "N/A" }) const sasMembership = user.loyalty ? getEurobonusMembership(user.loyalty) : null const showSasBoostIcon = sasMembership && getSasTierExpirationDate(sasMembership) && !sasMembership.boostedByScandic return (
{showSasBoostIcon && ( )}

{intl.formatMessage( { id: "common.membershipLevelWithValue", defaultMessage: "Level {level}", }, { level: membershipLevels[user.membership.membershipLevel] } )}

{sasMembership && ( )}

{intl.formatMessage({ id: "common.pointsToSpend", defaultMessage: "Points to spend", })}

{pointsToSpendText}

) }