import { cx } from "class-variance-authority" import { useIntl } from "react-intl" import { Divider } from "@scandic-hotels/design-system/Divider" import Body from "@/components/TempDesignSystem/Text/Body" import Caption from "@/components/TempDesignSystem/Text/Caption" import Subtitle from "@/components/TempDesignSystem/Text/Subtitle" import styles from "./hotelPriceCard.module.css" import type { PriceCardProps } from "@/types/components/hotelReservation/selectHotel/priceCardProps" import { RateTypeEnum } from "@/types/enums/rateType" export default function HotelPriceCard({ productTypePrices, isMemberPrice = false, className, }: PriceCardProps) { const intl = useIntl() const isRegularOrPublicPromotionRate = productTypePrices.rateType === RateTypeEnum.Regular || productTypePrices.rateType === RateTypeEnum.PublicPromotion return (
{isRegularOrPublicPromotionRate && (isMemberPrice ? (
{intl.formatMessage({ defaultMessage: "Member price", })}
) : (
{intl.formatMessage({ defaultMessage: "Standard price", })}
))}
{intl.formatMessage({ defaultMessage: "From", })}
{productTypePrices.localPrice.pricePerNight} {productTypePrices.localPrice.currency} {/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */} / {intl.formatMessage({ defaultMessage: "night", })}
{productTypePrices?.requestedPrice && (
{intl.formatMessage({ defaultMessage: "Approx.", })}
{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */} {`${productTypePrices.requestedPrice.pricePerNight} `} {productTypePrices.requestedPrice.currency}
)} {productTypePrices.localPrice.pricePerStay !== productTypePrices.localPrice.pricePerNight && // Handle undefined scenarios productTypePrices.localPrice.pricePerNight && ( <>
{intl.formatMessage({ defaultMessage: "Total", })}
{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */} {`${productTypePrices.localPrice.pricePerStay} `} {productTypePrices.localPrice.currency}
)}
) }