import OLBadge from '@/features/ui/components/ol/ol-badge'
import OLButton from '@/features/ui/components/ol/ol-button'
import OLCloseButton from '@/features/ui/components/ol/ol-close-button'
import OLCol from '@/features/ui/components/ol/ol-col'
import OLRow from '@/features/ui/components/ol/ol-row'
import MaterialIcon from '@/shared/components/material-icon'
import { PropsWithChildren } from 'react'
import { Container } from 'react-bootstrap-5'
import { Trans, useTranslation } from 'react-i18next'
type IconListItemProps = PropsWithChildren<{
icon: string
}>
function IconListItem({ icon, children }: IconListItemProps) {
return (
{children}
)
}
type PlansLinkProps = {
itmCampaign: string
onClick?: React.MouseEventHandler
}
function PlansLink({
children,
itmCampaign,
onClick,
}: PropsWithChildren) {
return (
{children}
)
}
type UpgradePromptProps = {
title: string
summary: string
onClose: () => void
planPricing: { student: string; standard: string }
itmCampaign: string
isStudent?: boolean
onClickInfoLink?: React.MouseEventHandler
onClickPaywall?: React.MouseEventHandler
}
export function UpgradePrompt({
title,
summary,
onClose,
planPricing,
itmCampaign,
isStudent = false,
onClickInfoLink,
onClickPaywall,
}: UpgradePromptProps) {
const { t } = useTranslation()
const planPrice = isStudent ? planPricing.student : planPricing.standard
const planCode = isStudent
? 'student_free_trial_7_days'
: 'collaborator_free_trial_7_days'
return (
onClose()} />
{title}
{summary}
{isStudent ? t('student') : t('standard')}
{t('recommended')}
{planPrice}{' '}
{t('per_month')}
{t('12x_more_compile_time')}
{t('collabs_per_proj', { collabcount: isStudent ? 6 : 10 })}
{t('unlimited_document_history')}
{t('try_for_free')}
{t('free')}
{/* Invisible span here to hold the correct height to match a card with a price */}
{t('your_current_plan')}
{t('basic_compile_time')}
{t('collabs_per_proj_single', { collabcount: 1 })}
{t('limited_document_history')}
onClose()}>
{t('continue_with_free_plan')}
{/* eslint-disable react/jsx-key */}
,
]}
/>
{/* eslint-disable react/jsx-key */}
)
}