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 { isBoostedBySas } from "@scandic-hotels/trpc/routers/user/helpers" import { membershipLevels } from "@/constants/membershipLevels" import { getUsePointsModal } from "@/lib/trpc/memoizedRequests" import MembershipLevelIcon from "@/components/Levels/Icon" import { getIntl } from "@/i18n" import { UsePointsModal } from "./UsePoints/UsePointsModal" 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() const usePointsData = await getUsePointsModal() 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 boostedBySas = user.loyalty ? isBoostedBySas(user.loyalty) : null return (
{boostedBySas ? ( ) : null}

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

{user.loyalty && boostedBySas ? ( ) : null}

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

{pointsToSpendText}

{user.membership.currentPoints > 0 && usePointsData && ( )}
) }