From c5cd92ed6f946de7811b04a57427d3f9df6e63f1 Mon Sep 17 00:00:00 2001 From: Egor Date: Wed, 21 Jan 2026 10:13:40 +0300 Subject: [PATCH] Update Dashboard.tsx --- src/pages/Dashboard.tsx | 63 ++++++++++++++++++++++++++++++++--------- 1 file changed, 49 insertions(+), 14 deletions(-) diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 2dfde26..aad5bb7 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -122,6 +122,7 @@ export default function Dashboard() { setTrialError(null) queryClient.invalidateQueries({ queryKey: ['subscription'] }) queryClient.invalidateQueries({ queryKey: ['trial-info'] }) + queryClient.invalidateQueries({ queryKey: ['balance'] }) refreshUser() }, onError: (error: { response?: { data?: { detail?: string } } }) => { @@ -455,7 +456,9 @@ export default function Dashboard() {

- {t('subscription.trial.title', 'Free Trial')} + {trialInfo.requires_payment + ? t('subscription.trial.titlePaid', 'Trial Subscription') + : t('subscription.trial.title', 'Free Trial')}

{t('subscription.trial.description', 'Try our VPN service for free!')} @@ -467,7 +470,7 @@ export default function Dashboard() {

{t('subscription.trial.days', 'days')}
-
{trialInfo.traffic_limit_gb}
+
{trialInfo.traffic_limit_gb || '∞'}
GB
@@ -477,9 +480,23 @@ export default function Dashboard() {
{trialInfo.requires_payment && trialInfo.price_rubles > 0 && ( -

- {t('subscription.trial.price', 'Activation price')}: {trialInfo.price_rubles.toFixed(2)} ₽ -

+
+
+ {t('subscription.trial.price', 'Activation price')}: + {trialInfo.price_rubles.toFixed(2)} {currencySymbol} +
+
+ {t('balance.currentBalance', 'Your balance')}: + = trialInfo.price_kopeks ? 'text-success-400' : 'text-warning-400'}`}> + {formatAmount(balanceData?.balance_rubles || 0)} {currencySymbol} + +
+ {(balanceData?.balance_kopeks || 0) < trialInfo.price_kopeks && ( +
+ {t('subscription.trial.insufficientBalance', 'Top up your balance to activate')} +
+ )} +
)} {trialError && ( @@ -488,15 +505,33 @@ export default function Dashboard() { )} - + {trialInfo.requires_payment && trialInfo.price_kopeks > 0 ? ( + (balanceData?.balance_kopeks || 0) >= trialInfo.price_kopeks ? ( + + ) : ( + + {t('subscription.trial.topUpToActivate', 'Top Up Balance')} + + ) + ) : ( + + )}