fix(ui): finish design-audit follow-ups

- useFeatureFlags: кэш флагов в localStorage — нижняя навигация больше
  не прыгает на холодном старте (таб «Рефералы»/«Колесо» появлялся после
  загрузки terms/config)
- applyThemeColors: частичный/битый ответ /branding/colors добивается
  дефолтами вместо падения всего приложения в ErrorBoundary
- карточка «Связаться с поддержкой»: кнопка больше не дублирует заголовок
  («Написать», без переноса)
- «Мои подписки»: заголовок и «Купить ещё» в одну строку на 390px
- StatCard: подписи плиток переносятся на две строки вместо обрезки
  многоточием («Бонус новому польз…»)
This commit is contained in:
c0mrade
2026-06-11 16:00:19 +03:00
parent 7f68e2cd5e
commit 9456c7f54e
9 changed files with 70 additions and 20 deletions

View File

@@ -109,15 +109,15 @@ export default function Subscriptions() {
return (
<div className="space-y-6">
{/* Header */}
<div className="flex items-center justify-between">
<h1 className="text-2xl font-bold" style={{ color: g.text }}>
<div className="flex items-center justify-between gap-3">
<h1 className="truncate text-xl font-bold" style={{ color: g.text }}>
{t('subscriptions.title', 'Мои подписки')}
</h1>
{/* «+ Купить ещё» — только если уже есть платная активная подписка */}
{!isLoading && hasActivePaid && (
<button
onClick={() => navigate('/subscription/purchase')}
className="flex items-center gap-1.5 rounded-xl px-4 py-2 text-sm font-medium transition-colors"
className="flex shrink-0 items-center gap-1.5 whitespace-nowrap rounded-xl px-4 py-2 text-sm font-medium transition-colors"
style={{
background: 'rgba(var(--color-accent-400), 0.1)',
color: 'rgb(var(--color-accent-400))',

View File

@@ -363,6 +363,7 @@ export default function Support() {
</div>
<Button
variant="secondary"
className="shrink-0 whitespace-nowrap"
onClick={() => {
const username = supportConfig.support_username!.startsWith('@')
? supportConfig.support_username!.slice(1)
@@ -370,7 +371,7 @@ export default function Support() {
openTelegramLink(`https://t.me/${username}`);
}}
>
{t('support.contactUs')}
{t('support.writeButton', 'Написать')}
</Button>
</Card>
</motion.div>