From cecfe7ec038a26eb580404957e70859e0df27e26 Mon Sep 17 00:00:00 2001 From: c0mrade Date: Wed, 3 Jun 2026 11:17:00 +0300 Subject: [PATCH] =?UTF-8?q?fix(dashboard):=20=D1=83=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20=D0=B4=D1=83=D0=B1=D0=BB=D1=8C=20=D0=BA=D0=BD?= =?UTF-8?q?=D0=BE=D0=BF=D0=BA=D0=B8=20=D0=BF=D0=BE=D0=BA=D1=83=D0=BF=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=BF=D1=80=D0=B8=20=D0=BF=D1=83=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D0=BC=20=D1=81=D0=BF=D0=B8=D1=81=D0=BA=D0=B5=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B4=D0=BF=D0=B8=D1=81=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Мульти-тариф блок рендерился даже при пустом списке подписок (пустой массив truthy) — показывал заголовок «Подписки» и кнопку покупки, которая дублировала кнопку из блока «нет подписок» (триал-оффер). Получалось две одинаковые «Посмотреть тарифы и купить подписку». Теперь мульти-тариф блок рендерится только когда подписки реально есть (length > 0), а блок «нет подписок» показывает триал (если доступен) и ВСЕГДА одну явную кнопку покупки — заодно закрывает случай «нет подписок и триал недоступен» (раньше его прикрывал пустой мульти-тариф блок). --- src/pages/Dashboard.tsx | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index c5c87ed..41557a5 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -279,8 +279,10 @@ export default function Dashboard() { {/* Pending Gift Activations */} {pendingGifts && pendingGifts.length > 0 && } - {/* Multi-tariff: show subscription cards (max 3) */} - {isMultiTariff && multiSubData?.subscriptions && ( + {/* Multi-tariff: show subscription cards (max 3) — только когда подписки + реально есть. Пустой случай (нет подписок) ведёт блок ниже (триал/покупка), + иначе кнопка покупки дублировалась. */} + {isMultiTariff && multiSubData?.subscriptions && multiSubData.subscriptions.length > 0 && (
@@ -361,20 +363,22 @@ export default function Dashboard() { )} - {/* Trial Activation */} - {hasNoSubscription && !trialLoading && trialInfo?.is_available && ( + {/* Нет подписок: показываем триал (если доступен) и ВСЕГДА одну явную + кнопку покупки. Триал не обязателен, чтобы попасть в витрину — раньше + при доступном триале это был единственный экран без кнопки покупки + (Telegram-баг #605056/#605063). Единственная кнопка тут (вместо дубля + с мульти-тариф блоком). */} + {hasNoSubscription && !trialLoading && (
- - {/* Новый пользователь не обязан активировать триал, чтобы попасть в - витрину — даём явный путь к покупке подписки. Раньше при доступном - триале это был единственный экран без кнопки покупки, и на дашборде - (вход по умолчанию) юзер оставался заперт (Telegram-баг #605056/#605063). */} + {trialInfo?.is_available && ( + + )}