diff --git a/src/pages/Subscription.tsx b/src/pages/Subscription.tsx index 5762afb..a827d44 100644 --- a/src/pages/Subscription.tsx +++ b/src/pages/Subscription.tsx @@ -7,6 +7,7 @@ import { subscriptionApi } from '../api/subscription' import { promoApi } from '../api/promo' import type { PurchaseSelection, PeriodOption, Tariff, TariffPeriod, ClassicPurchaseOptions } from '../types' import ConnectionModal from '../components/ConnectionModal' +import InsufficientBalancePrompt from '../components/InsufficientBalancePrompt' import { useCurrency } from '../hooks/useCurrency' // Helper to extract error message from axios/api errors @@ -772,9 +773,16 @@ export default function Subscription() { )} + {devicePriceData && purchaseOptions && devicePriceData.total_price_kopeks && devicePriceData.total_price_kopeks > purchaseOptions.balance_kopeks && ( + + )} + - )} + {selectedTrafficPackage && (() => { + const selectedPkg = trafficPackages.find(p => p.gb === selectedTrafficPackage) + const hasEnoughBalance = !selectedPkg || !purchaseOptions || selectedPkg.price_kopeks <= purchaseOptions.balance_kopeks + const missingAmount = selectedPkg && purchaseOptions ? selectedPkg.price_kopeks - purchaseOptions.balance_kopeks : 0 + + return ( + <> + {!hasEnoughBalance && missingAmount > 0 && ( + + )} + + + ) + })()} {trafficPurchaseMutation.isError && (
@@ -1050,9 +1073,10 @@ export default function Subscription() {
{!switchPreview.has_enough_balance && switchPreview.upgrade_cost_kopeks > 0 && ( -
- {t('subscription.switchTariff.notEnoughBalance')}: {switchPreview.missing_amount_label} -
+ )}