From 196c826aa831d70048a7c0402e0cd848f3e87e1e Mon Sep 17 00:00:00 2001 From: Egor Date: Mon, 2 Feb 2026 05:19:42 +0300 Subject: [PATCH 1/3] 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 */}
From f35277ad3a7410e869c5f5896329d4d76095cf8e Mon Sep 17 00:00:00 2001 From: Egor Date: Mon, 2 Feb 2026 05:20:13 +0300 Subject: [PATCH 2/3] Add files via upload --- src/locales/en.json | 15 +++++++++++++++ src/locales/ru.json | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/locales/en.json b/src/locales/en.json index 95ce627..2eb78e2 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -305,6 +305,21 @@ "insufficientBalance": "Top up your balance to activate", "unavailable": "Trial is not available" }, + "trialBanner": { + "title": "Trial period active", + "description": "You have {{days}} days left in your trial. Subscribe to continue using the service.", + "upgrade": "Choose a plan" + }, + "trialInfo": { + "title": "Trial Period", + "description": "You are using a trial version. Choose a plan below for full access.", + "remaining": "remaining", + "upgradeNow": "Choose a plan" + }, + "trialUpgrade": { + "title": "Choose a plan to continue", + "description": "Your trial period is ending soon. Select a plan to continue using VPN without restrictions." + }, "connection": { "title": "Connect VPN", "selectDevice": "Select your device", diff --git a/src/locales/ru.json b/src/locales/ru.json index 7f2f016..22beb2b 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -327,6 +327,21 @@ "insufficientBalance": "Пополните баланс для активации", "unavailable": "Пробный период недоступен" }, + "trialBanner": { + "title": "Пробный период активен", + "description": "У вас осталось {{days}} дней пробного периода. Оформите подписку, чтобы продолжить пользоваться сервисом.", + "upgrade": "Выбрать тариф" + }, + "trialInfo": { + "title": "Пробный период", + "description": "Вы используете пробную версию сервиса. Выберите тариф ниже для полного доступа.", + "remaining": "осталось", + "upgradeNow": "Выбрать тариф" + }, + "trialUpgrade": { + "title": "Выберите тариф для продолжения", + "description": "Ваш пробный период скоро закончится. Выберите подходящий тариф, чтобы продолжить пользоваться VPN без ограничений." + }, "connection": { "title": "Подключить VPN", "selectDevice": "Выберите устройство", From 1af7dee04d8ce471fc6b13eabe9786a63cb4a93b Mon Sep 17 00:00:00 2001 From: Egor Date: Mon, 2 Feb 2026 05:22:18 +0300 Subject: [PATCH 3/3] Update Subscription.tsx --- src/pages/Subscription.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pages/Subscription.tsx b/src/pages/Subscription.tsx index badae83..402de39 100644 --- a/src/pages/Subscription.tsx +++ b/src/pages/Subscription.tsx @@ -666,7 +666,9 @@ export default function Subscription() { {t('subscription.trialInfo.remaining')}
- {subscription.traffic_limit_gb || '∞'} GB + + {subscription.traffic_limit_gb || '∞'} GB + {t('subscription.traffic')}