mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-29 18:13:47 +00:00
fix(dashboard): убрать дубль кнопки покупки при пустом списке подписок
Мульти-тариф блок рендерился даже при пустом списке подписок (пустой массив truthy) — показывал заголовок «Подписки» и кнопку покупки, которая дублировала кнопку из блока «нет подписок» (триал-оффер). Получалось две одинаковые «Посмотреть тарифы и купить подписку». Теперь мульти-тариф блок рендерится только когда подписки реально есть (length > 0), а блок «нет подписок» показывает триал (если доступен) и ВСЕГДА одну явную кнопку покупки — заодно закрывает случай «нет подписок и триал недоступен» (раньше его прикрывал пустой мульти-тариф блок).
This commit is contained in:
@@ -279,8 +279,10 @@ export default function Dashboard() {
|
|||||||
{/* Pending Gift Activations */}
|
{/* Pending Gift Activations */}
|
||||||
{pendingGifts && pendingGifts.length > 0 && <PendingGiftCard gifts={pendingGifts} />}
|
{pendingGifts && pendingGifts.length > 0 && <PendingGiftCard gifts={pendingGifts} />}
|
||||||
|
|
||||||
{/* Multi-tariff: show subscription cards (max 3) */}
|
{/* Multi-tariff: show subscription cards (max 3) — только когда подписки
|
||||||
{isMultiTariff && multiSubData?.subscriptions && (
|
реально есть. Пустой случай (нет подписок) ведёт блок ниже (триал/покупка),
|
||||||
|
иначе кнопка покупки дублировалась. */}
|
||||||
|
{isMultiTariff && multiSubData?.subscriptions && multiSubData.subscriptions.length > 0 && (
|
||||||
<div className="space-y-3">
|
<div className="space-y-3">
|
||||||
<div className="flex items-center justify-between px-1">
|
<div className="flex items-center justify-between px-1">
|
||||||
<span className="text-sm font-medium opacity-60">
|
<span className="text-sm font-medium opacity-60">
|
||||||
@@ -361,20 +363,22 @@ export default function Dashboard() {
|
|||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{/* Trial Activation */}
|
{/* Нет подписок: показываем триал (если доступен) и ВСЕГДА одну явную
|
||||||
{hasNoSubscription && !trialLoading && trialInfo?.is_available && (
|
кнопку покупки. Триал не обязателен, чтобы попасть в витрину — раньше
|
||||||
|
при доступном триале это был единственный экран без кнопки покупки
|
||||||
|
(Telegram-баг #605056/#605063). Единственная кнопка тут (вместо дубля
|
||||||
|
с мульти-тариф блоком). */}
|
||||||
|
{hasNoSubscription && !trialLoading && (
|
||||||
<div className="space-y-3">
|
<div className="space-y-3">
|
||||||
<TrialOfferCard
|
{trialInfo?.is_available && (
|
||||||
trialInfo={trialInfo}
|
<TrialOfferCard
|
||||||
balanceKopeks={balanceData?.balance_kopeks || 0}
|
trialInfo={trialInfo}
|
||||||
balanceRubles={balanceData?.balance_rubles || 0}
|
balanceKopeks={balanceData?.balance_kopeks || 0}
|
||||||
activateTrialMutation={activateTrialMutation}
|
balanceRubles={balanceData?.balance_rubles || 0}
|
||||||
trialError={trialError}
|
activateTrialMutation={activateTrialMutation}
|
||||||
/>
|
trialError={trialError}
|
||||||
{/* Новый пользователь не обязан активировать триал, чтобы попасть в
|
/>
|
||||||
витрину — даём явный путь к покупке подписки. Раньше при доступном
|
)}
|
||||||
триале это был единственный экран без кнопки покупки, и на дашборде
|
|
||||||
(вход по умолчанию) юзер оставался заперт (Telegram-баг #605056/#605063). */}
|
|
||||||
<Link
|
<Link
|
||||||
to="/subscription/purchase"
|
to="/subscription/purchase"
|
||||||
className="flex w-full items-center justify-center gap-2 rounded-2xl bg-accent-500 p-3.5 text-sm font-semibold text-white transition-colors hover:bg-accent-600"
|
className="flex w-full items-center justify-center gap-2 rounded-2xl bg-accent-500 p-3.5 text-sm font-semibold text-white transition-colors hover:bg-accent-600"
|
||||||
|
|||||||
Reference in New Issue
Block a user