import { Link } from 'react-router'; import { useTranslation } from 'react-i18next'; import { HoverBorderGradient } from '../ui/hover-border-gradient'; import type { Subscription } from '../../types'; interface PurchaseCTAButtonProps { subscription: Subscription | null; /** In multi-tariff mode, link to /subscriptions/:id/renew instead of /subscription/purchase */ isMultiTariff?: boolean; } export default function PurchaseCTAButton({ subscription, isMultiTariff = false, }: PurchaseCTAButtonProps) { const { t } = useTranslation(); const isExpired = !subscription || (!subscription.is_active && !subscription.is_trial); const isTrial = subscription?.is_trial; const isDaily = subscription?.is_daily; // Daily tariffs renew automatically — no manual renewal button needed in multi-tariff if (isMultiTariff && isDaily && !isExpired) return null; const accentColor = isExpired ? '#FF3B5C' : 'rgb(var(--color-accent-400))'; const buttonText = isExpired ? t('subscription.getSubscription') : isTrial ? t('subscription.trialUpgrade.title') : t('subscription.extend'); const hintText = isExpired ? t('subscription.cta.expiredHint') : isTrial ? t('subscription.cta.trialHint') : isMultiTariff ? t('subscription.cta.renewHint', 'Продление подписки') : t('subscription.cta.activeHint'); // Trial → purchase page (buy a real tariff, trial can't be renewed) // Multi-tariff active → per-subscription renew page // Otherwise → purchase page const linkTo = isTrial ? '/subscription/purchase' : isMultiTariff && subscription?.id ? `/subscriptions/${subscription.id}/renew` : '/subscription/purchase'; return (
{/* Left: icon + text */}
{/* Sparkle icon */}
{buttonText}
{hintText}
{/* Right: chevron */}
); }