import { cx } from "class-variance-authority" import { Typography } from "../../Typography" import { Rate, RateTermDetails } from "../types" import { Button as ButtonRAC } from "react-aria-components" import { useIntl } from "react-intl" import { IconButton } from "../../IconButton" import { MaterialIcon } from "../../Icons/MaterialIcon" import Modal from "../Modal" import styles from "../rate-card.module.css" import { variants } from "../variants" interface CampaignRateCardProps { id: string isSelected: boolean rateTitle: string paymentTerm: string bannerText: string rate: Rate memberRate?: Rate omnibusRate?: Rate comparisonRate?: Omit isHighlightedRate?: boolean isHighlightedRateLabel?: boolean approximateRate?: Rate roomTypeCode: string handleChange: () => void handleTermsClick?: () => void rateTermDetails: RateTermDetails[] } export default function CampaignRateCard({ id, isSelected, rateTitle, paymentTerm, rate, roomTypeCode, memberRate, approximateRate, comparisonRate, omnibusRate, bannerText, isHighlightedRate, isHighlightedRateLabel, handleChange, rateTermDetails, }: CampaignRateCardProps) { const classNames = variants({ variant: "Campaign", }) const intl = useIntl() return (

{bannerText}

} > {rateTermDetails.map((termGroup) => (

{termGroup.title}

{termGroup.terms.map((term) => (

{term}

))}
))}
{rateTitle} {/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */} {` / ${paymentTerm}`}

{rate.label}

{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */} {`${rate.price} `} {rate.unit}

{memberRate ? (

{memberRate.label}

{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */} {`${memberRate.price} `} {memberRate.unit}

) : null} {comparisonRate ? (

{comparisonRate.price} {/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */} {" "} {comparisonRate.unit}

) : null} {approximateRate ? (

{approximateRate.label}

{approximateRate.price} {approximateRate.unit}

) : null}
{omnibusRate ? (

{omnibusRate.label}

{omnibusRate.price} {omnibusRate.unit}

) : null}
{isSelected && ( )}
) }