From 196c826aa831d70048a7c0402e0cd848f3e87e1e Mon Sep 17 00:00:00 2001 From: Egor Date: Mon, 2 Feb 2026 05:19:42 +0300 Subject: [PATCH] Add files via upload --- src/pages/Dashboard.tsx | 54 ++++++++++++- src/pages/Subscription.tsx | 152 +++++++++++++++++++++++++++++++++---- 2 files changed, 189 insertions(+), 17 deletions(-) diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index ad5d5c8..534a7cd 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -300,14 +300,60 @@ export default function Dashboard() { ) : subscription ? ( -
+
-

{t('subscription.status')}

- - {subscription.is_active ? t('subscription.active') : t('subscription.expired')} +
+

{t('subscription.status')}

+ {subscription.tariff_name && ( +
{subscription.tariff_name}
+ )} +
+ + {subscription.is_trial + ? t('subscription.trialStatus') + : subscription.is_active + ? t('subscription.active') + : t('subscription.expired')}
+ {/* Trial Info Banner */} + {subscription.is_trial && subscription.is_active && ( +
+
+
+ +
+
+
+ {t('subscription.trialBanner.title')} +
+
+ {t('subscription.trialBanner.description', { days: subscription.days_left })} +
+ + {t('subscription.trialBanner.upgrade')} + + +
+
+
+ )} +
{t('subscription.expiresAt')}
diff --git a/src/pages/Subscription.tsx b/src/pages/Subscription.tsx index 0fab533..badae83 100644 --- a/src/pages/Subscription.tsx +++ b/src/pages/Subscription.tsx @@ -601,7 +601,9 @@ export default function Subscription() { {/* Current Subscription */} {subscription ? ( -
+

@@ -628,6 +630,55 @@ export default function Subscription() {

+ {/* Trial Period Info Banner */} + {subscription.is_trial && subscription.is_active && ( +
+
+
+ + + +
+
+
+ {t('subscription.trialInfo.title')} +
+
+ {t('subscription.trialInfo.description')} +
+
+
+ + {subscription.days_left > 0 + ? t('subscription.days', { count: subscription.days_left }) + : `${subscription.hours_left}${t('subscription.hours')} ${subscription.minutes_left}${t('subscription.minutes')}`} + + {t('subscription.trialInfo.remaining')} +
+
+ {subscription.traffic_limit_gb || '∞'} GB + {t('subscription.traffic')} +
+
+ {subscription.device_limit} + {t('subscription.devices')} +
+
+
+
+
+ )} + {/* Connection Data - Top Priority */} {subscription.subscription_url && (
@@ -1871,17 +1922,48 @@ export default function Subscription() {
+ {/* Trial upgrade prompt */} + {subscription?.is_trial && ( +
+
+
+ + + +
+
+
+ {t('subscription.trialUpgrade.title')} +
+
+ {t('subscription.trialUpgrade.description')} +
+
+
+
+ )} + {/* Legacy subscription notice - if user has subscription without tariff */} {subscription && !subscription.is_trial && !subscription.tariff_id && (
- 📦 {t('subscription.legacy.selectTariffTitle')} + {t('subscription.legacy.selectTariffTitle')}
{t('subscription.legacy.selectTariffDescription')}
- ⚠️ {t('subscription.legacy.currentSubContinues')} + {t('subscription.legacy.currentSubContinues')}
)} @@ -2070,20 +2152,64 @@ export default function Subscription() { )}
-
- - {tariff.traffic_limit_label} - - - +
+ {/* Traffic */} +
+ + + + + {tariff.traffic_limit_label} + +
+ {/* Devices */} +
+ + + + {t('subscription.devices', { count: tariff.device_limit })} - - - +
+ {/* Servers */} +
+ + + + {t('subscription.servers', { count: tariff.servers_count })} - +
{/* Price info - daily or period-based */}