in support-frontend/assets/pages/supporter-plus-landing/components/threeTierCard.tsx [188:278]
export function ThreeTierCard({
cardContent,
cardTier,
promoCount,
isSubdued,
currencyId,
paymentFrequency,
}: ThreeTierCardProps): JSX.Element {
const {
title,
benefits,
isUserSelected,
promotion,
price,
link,
cta,
product,
} = cardContent;
const currency = currencies[currencyId];
const period = recurringContributionPeriodMap[paymentFrequency];
const formattedPrice = simpleFormatAmount(currency, price);
const quantumMetricButtonRef = `tier-${cardTier}-button`;
const pillCopy = promotion?.landingPage?.roundel ?? cardContent.label?.copy;
return (
<section css={container(!!pillCopy, isUserSelected, isSubdued)}>
{isUserSelected && <ThreeTierCardPill title="Your selection" />}
{!!pillCopy && !isUserSelected && (
<ThreeTierCardPill
subdue={isSubdued}
title={promotion?.landingPage?.roundel ?? pillCopy}
/>
)}
<h2 css={titleCss}>{title}</h2>
<p css={priceCss(!!promotion)}>
{promotion && (
<>
<span css={previousPriceStrikeThrough}>{formattedPrice}</span>{' '}
{`${simpleFormatAmount(
currency,
promotion.discountedPrice ?? price,
)}/${period}`}
<span css={discountSummaryCss}>
{discountSummaryCopy(
currency,
promoCount,
price,
promotion,
paymentFrequency,
)}
</span>
</>
)}
{!promotion && `${formattedPrice}/${period}`}
</p>
<ThemeProvider theme={buttonThemeReaderRevenueBrand}>
<LinkButton
href={link}
cssOverrides={btnStyleOverrides}
data-qm-trackable={quantumMetricButtonRef}
aria-label={title}
>
{cta.copy}
</LinkButton>
</ThemeProvider>
{product === 'TierThree' && (
<div css={benefitsPrefixCss}>
<span>
The rewards from <strong>All-access digital</strong>
</span>
{benefits.length > 0 && <span css={benefitsPrefixPlus}>plus</span>}
</div>
)}
<BenefitsCheckList
benefitsCheckListData={benefits.map((benefit) => {
return {
text: benefit.copy,
isChecked: true,
toolTip: benefit.tooltip,
pill: benefit.label?.copy,
hideBullet: benefits.length <= 1 && product !== 'TierThree',
};
})}
style={'compact'}
iconColor={palette.brand[500]}
cssOverrides={checkmarkBenefitList}
/>
</section>
);
}