From a96e4dc5806730e2a714f67bd00a17f03d850416 Mon Sep 17 00:00:00 2001 From: Egor Date: Fri, 16 Jan 2026 07:26:22 +0300 Subject: [PATCH] Update Subscription.tsx --- src/pages/Subscription.tsx | 61 +++++++++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 7 deletions(-) diff --git a/src/pages/Subscription.tsx b/src/pages/Subscription.tsx index a8f32db..3617ec2 100644 --- a/src/pages/Subscription.tsx +++ b/src/pages/Subscription.tsx @@ -1046,7 +1046,24 @@ export default function Subscription() { )} {!showTariffPurchase ? ( - /* Tariff List - current tariff first */ + <> + {/* Promo group discount banner */} + {tariffs.some(t => t.promo_group_name) && ( +
+
+ + + +
+
+
+ Ваша группа: {tariffs.find(t => t.promo_group_name)?.promo_group_name} +
+
Персональные скидки применены к ценам
+
+
+ )} + {/* Tariff List - current tariff first */}
{[...tariffs] .sort((a, b) => { @@ -1098,18 +1115,37 @@ export default function Subscription() { {(() => { // Daily tariff price (is_daily + daily_price_kopeks) const dailyPrice = tariff.daily_price_kopeks ?? tariff.price_per_day_kopeks ?? 0 + const originalDailyPrice = tariff.original_daily_price_kopeks || 0 if (dailyPrice > 0) { return ( - - {formatPrice(dailyPrice)} / день + + {formatPrice(dailyPrice)} + {originalDailyPrice > dailyPrice && ( + {formatPrice(originalDailyPrice)} + )} + / день + {tariff.daily_discount_percent && tariff.daily_discount_percent > 0 && ( + -{tariff.daily_discount_percent}% + )} ) } // Period-based price if (tariff.periods.length > 0) { + const firstPeriod = tariff.periods[0] + const hasDiscount = firstPeriod?.original_price_kopeks && firstPeriod.original_price_kopeks > firstPeriod.price_kopeks return ( - - {t('subscription.from')} {formatPrice(tariff.periods[0]?.price_kopeks || 0)} + + {t('subscription.from')} + {formatPrice(firstPeriod?.price_kopeks || 0)} + {hasDiscount && ( + <> + {formatPrice(firstPeriod.original_price_kopeks!)} + {firstPeriod.discount_percent && ( + -{firstPeriod.discount_percent}% + )} + + )} ) } @@ -1176,6 +1212,7 @@ export default function Subscription() { ) })}
+ ) : selectedTariff && ( /* Tariff Purchase Form */
@@ -1300,14 +1337,24 @@ export default function Subscription() { setSelectedTariffPeriod(period) setUseCustomDays(false) }} - className={`p-4 rounded-xl border text-left transition-all ${ + className={`p-4 rounded-xl border text-left transition-all relative ${ selectedTariffPeriod?.days === period.days && !useCustomDays ? 'border-accent-500 bg-accent-500/10' : 'border-dark-700/50 hover:border-dark-600 bg-dark-800/30' }`} > + {period.discount_percent && period.discount_percent > 0 && ( +
+ -{period.discount_percent}% +
+ )}
{period.label}
-
{formatPrice(period.price_kopeks)}
+
+ {formatPrice(period.price_kopeks)} + {period.original_price_kopeks && period.original_price_kopeks > period.price_kopeks && ( + {formatPrice(period.original_price_kopeks)} + )} +
{formatPrice(period.price_per_month_kopeks)}/{t('subscription.month')}
))}