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

{bannerText}

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

{termGroup.title}

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

{term}

))}
))}
{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 */} {`${rate.currency} ${rate.additionalPrice ? ' + ' : ''}`}

{rate.additionalPrice && (

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

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