mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 17:43:47 +00:00
feat: separate renewal and purchase flows in multi-tariff mode
Renewal flow (per-subscription): - New /subscriptions/:id/renew page showing only period options for the specific tariff with balance display and renew button - PurchaseCTAButton links to /renew in multi-tariff mode Purchase flow (new tariffs only): - Hide already purchased tariffs (is_purchased flag from backend) - Fallback UI when all tariffs are owned - Types: added is_purchased, all_tariffs_purchased fields
This commit is contained in:
@@ -5,9 +5,14 @@ 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 }: PurchaseCTAButtonProps) {
|
||||
export default function PurchaseCTAButton({
|
||||
subscription,
|
||||
isMultiTariff = false,
|
||||
}: PurchaseCTAButtonProps) {
|
||||
const { t } = useTranslation();
|
||||
|
||||
const isExpired = !subscription || (!subscription.is_active && !subscription.is_trial);
|
||||
@@ -27,8 +32,14 @@ export default function PurchaseCTAButton({ subscription }: PurchaseCTAButtonPro
|
||||
? t('subscription.cta.trialHint')
|
||||
: t('subscription.cta.activeHint');
|
||||
|
||||
// In multi-tariff mode: renew goes to per-subscription renew page
|
||||
const linkTo =
|
||||
isMultiTariff && subscription?.id
|
||||
? `/subscriptions/${subscription.id}/renew`
|
||||
: '/subscription/purchase';
|
||||
|
||||
return (
|
||||
<Link to="/subscription/purchase" className="block">
|
||||
<Link to={linkTo} className="block">
|
||||
<HoverBorderGradient
|
||||
accentColor={accentColor}
|
||||
duration={4}
|
||||
|
||||
Reference in New Issue
Block a user