+ {/* Header */}
+
+
+
Тарифы и оплата
+
+ Управление подпиской, модули и история платежей
+
+
+
+
+
Ежемесячный платёж
+
+ {totalMonthly > 0 ? `${totalMonthly.toLocaleString('ru-RU')} ₽` : 'Бесплатно'}
+
+
+
+
+
+
+ {/* Current plan banner */}
+
+
+
+
+
+
Текущий тариф
+
{currentPlan.name}
+
+
+
Следующее списание
+
1 апреля 2026
+
+
+
+ Активен
+
+
+
+
+ {/* Tabs */}
+
+ {([
+ { id: 'plans', label: 'Тарифные планы' },
+ { id: 'modules', label: 'Модули' },
+ { id: 'history', label: 'История платежей' },
+ ] as { id: PageTab; label: string }[]).map(t => (
+
+ ))}
+
+
+ {/* ── Plans Tab ── */}
+ {tab === 'plans' && (
+
+ {PLANS.map(plan => {
+ const isCurrent = plan.id === CURRENT_PLAN_ID
+ const Icon = plan.icon
+ return (
+
+ {plan.popular && (
+
+ )}
+
+
+
+
+ {isCurrent && (
+
+ Текущий
+
+ )}
+ {plan.badge && !isCurrent && (
+
+ {plan.badge}
+
+ )}
+
+
{plan.name}
+
{plan.description}
+
+
+
+
+ {plan.price !== null ? (
+ <>
+
+ {plan.price === 0 ? 'Бесплатно' : `${plan.price.toLocaleString('ru-RU')} ₽`}
+
+ {plan.price > 0 && /мес}
+ >
+ ) : (
+ Договорная
+ )}
+
+
{plan.rooms}
+
+
+
+ {plan.features.map((f, i) => (
+ -
+
+ {f}
+
+ ))}
+
+
+
+ {isCurrent ? (
+
+ Текущий тариф ✓
+
+ ) : (
+ <>
+
+ {plan.id === 'enterprise' ? (
+
+ ) : (
+
+ )}
+ >
+ )}
+
+
+
+ )
+ })}
+
+ )}
+
+ {/* ── Modules Tab ── */}
+ {tab === 'modules' && (
+
+
+
+
+ Подключённые модули автоматически отображаются в меню. Отключённые модули скрываются и становятся недоступны для всех сотрудников.
+
+
+
+
+
+
+ {MODULES_DATA.map(mod => (
+ toggleModule(mod.id)}
+ />
+ ))}
+
+
+
Итого за модули
+
+ {paidActiveModules.reduce((s, m) => s + m.price, 0).toLocaleString('ru-RU')} ₽/мес
+
+
+
+
+ {/* YuKassa placeholder */}
+
+
+
+
+
+
+
Онлайн-оплата через ЮKassa
+
Карты, СБП, Яндекс Пэй — скоро
+
+
+ Скоро
+
+
+
+
+
+ Интеграция с ЮKassa позволит оплачивать подписку картой или через СБП прямо в личном кабинете
+
+
+
+
+ )}
+
+ {/* ── History Tab ── */}
+ {tab === 'history' && (
+
+
+
+ {[
+ { date: '01.03.2026', desc: 'Тариф Профессиональный', amount: 5990, status: 'paid' },
+ { date: '01.02.2026', desc: 'Тариф Профессиональный', amount: 5990, status: 'paid' },
+ { date: '01.01.2026', desc: 'Тариф Стандарт + Менеджер каналов', amount: 5490, status: 'paid' },
+ { date: '01.12.2025', desc: 'Тариф Стандарт', amount: 2990, status: 'paid' },
+ ].map((item, i) => (
+
+
+
{item.desc}
+
{item.date}
+
+
+
+ {item.amount.toLocaleString('ru-RU')} ₽
+
+
+ Оплачен
+
+
+
+ ))}
+
+
+ )}
+
+ {/* Invoice Modal */}
+ {showInvoice && invoicePlan && (
+
({ name: m.name, price: m.price }))}
+ totalMonthly={totalMonthly}
+ onClose={() => setShowInvoice(false)}
+ />
+ )}
+
+ )
+}