feat: add WebBackButton to all sub-pages, widen renew page layout

- New WebBackButton component: visible on web, hidden in Telegram
  (native back button handles navigation there)
- Added to: Subscription detail, SubscriptionPurchase, RenewSubscription
- RenewSubscription: removed max-w-lg, grid layout for period cards
This commit is contained in:
c0mrade
2026-03-24 14:01:55 +03:00
parent f1cb9e5c66
commit 31d0953c23
4 changed files with 73 additions and 27 deletions

View File

@@ -5,6 +5,7 @@ import { useNavigate, useSearchParams } from 'react-router';
import { AxiosError } from 'axios';
import { subscriptionApi } from '../api/subscription';
import { promoApi } from '../api/promo';
import { WebBackButton } from '../components/WebBackButton';
import { getGlassColors } from '../utils/glassTheme';
import { useTheme } from '../hooks/useTheme';
import type {
@@ -407,16 +408,21 @@ export default function SubscriptionPurchase() {
return (
<div className="space-y-6">
{/* Header — native Telegram back button handles navigation */}
<h1 className="text-2xl font-bold text-dark-50 sm:text-3xl">
{isMultiTariff && !subscriptionId
? t('subscription.newTariff', 'Новый тариф')
: !isMultiTariff && subscription?.is_daily && !subscription?.is_trial
? t('subscription.switchTariff.title')
: subscription && !subscription.is_trial
? t('subscription.extend')
: t('subscription.getSubscription')}
</h1>
{/* Header */}
<div className="flex items-center gap-3">
<WebBackButton
to={subscriptionId ? `/subscriptions/${subscriptionId}` : '/subscriptions'}
/>
<h1 className="text-2xl font-bold text-dark-50 sm:text-3xl">
{isMultiTariff && !subscriptionId
? t('subscription.newTariff', 'Новый тариф')
: !isMultiTariff && subscription?.is_daily && !subscription?.is_trial
? t('subscription.switchTariff.title')
: subscription && !subscription.is_trial
? t('subscription.extend')
: t('subscription.getSubscription')}
</h1>
</div>
{/* Tariffs Section */}
{isTariffsMode && tariffs.length > 0 && (