import { Typography } from "../../Typography" import { RatePointsOption, RateTermDetails } from "../types" import { RadioGroup } from "react-aria-components" import { Radio } from "../../Radio" import styles from "../rate-card.module.css" import { variants } from "../variants" import { MaterialIcon } from "../../Icons/MaterialIcon" import { getCurrencyText } from "../../currency-utils" import TermModal from "../TermModal" import { useIntl } from "react-intl" interface PointsRateCardProps { rateTitle: string paymentTerm: string bannerText: string rates: RatePointsOption[] selectedRate: string | undefined onRateSelect: (value: string) => void isNotEnoughPoints?: boolean notEnoughPointsText?: string rateTermDetails: RateTermDetails[] id: string roomTypeCode: string } export default function PointsRateCard({ rateTitle, paymentTerm, bannerText, id, rates, selectedRate, isNotEnoughPoints, notEnoughPointsText, onRateSelect, roomTypeCode, rateTermDetails, }: PointsRateCardProps) { const classNames = variants({ variant: "Points", }) const intl = useIntl() return (

{bannerText}

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

{rates.map((rate, index) => (

{/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */} {`${rate.points} `} {/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */} {`${getCurrencyText(intl, rate.currency, rate.points, rate.pointsType)} ${rate.additionalPrice ? " + " : ""}`}

{rate.additionalPrice && (

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

)}
))}
{isNotEnoughPoints ? ( ) : null}
) }