feat: multi-tariff purchase UX - disable switch, show Buy for new tariffs, correct page title

This commit is contained in:
c0mrade
2026-03-19 20:47:48 +03:00
parent a0c21a11aa
commit bcbfa4191e

View File

@@ -74,6 +74,14 @@ export default function SubscriptionPurchase() {
const tariffs = const tariffs =
isTariffsMode && purchaseOptions && 'tariffs' in purchaseOptions ? purchaseOptions.tariffs : []; isTariffsMode && purchaseOptions && 'tariffs' in purchaseOptions ? purchaseOptions.tariffs : [];
// Multi-tariff: check via subscriptions list query
const { data: multiSubData } = useQuery({
queryKey: ['subscriptions-list'],
queryFn: () => subscriptionApi.getSubscriptions(),
staleTime: 60_000,
});
const isMultiTariff = multiSubData?.multi_tariff_enabled ?? false;
// Helper to apply promo discount // Helper to apply promo discount
const applyPromoDiscount = ( const applyPromoDiscount = (
priceKopeks: number, priceKopeks: number,
@@ -451,11 +459,13 @@ export default function SubscriptionPurchase() {
</svg> </svg>
</button> </button>
<h1 className="text-2xl font-bold text-dark-50 sm:text-3xl"> <h1 className="text-2xl font-bold text-dark-50 sm:text-3xl">
{subscription?.is_daily && !subscription?.is_trial {isMultiTariff && !subscriptionId
? t('subscription.switchTariff.title') ? t('subscription.buyTariff', 'Купить тариф')
: subscription && !subscription.is_trial : subscription?.is_daily && !subscription?.is_trial
? t('subscription.extend') ? t('subscription.switchTariff.title')
: t('subscription.getSubscription')} : subscription && !subscription.is_trial
? t('subscription.extend')
: t('subscription.getSubscription')}
</h1> </h1>
</div> </div>
@@ -776,6 +786,7 @@ export default function SubscriptionPurchase() {
'subscription_is_expired' in purchaseOptions && 'subscription_is_expired' in purchaseOptions &&
purchaseOptions.subscription_is_expired === true; purchaseOptions.subscription_is_expired === true;
const canSwitch = const canSwitch =
!isMultiTariff &&
subscription && subscription &&
subscription.tariff_id && subscription.tariff_id &&
!isCurrentTariff && !isCurrentTariff &&