diff --git a/src/pages/Subscription.tsx b/src/pages/Subscription.tsx
index aeab231..eba7467 100644
--- a/src/pages/Subscription.tsx
+++ b/src/pages/Subscription.tsx
@@ -1014,12 +1014,15 @@ export default function Subscription() {
- {devicePriceData?.available === false ? (
+ {/* Check if completely unavailable (no subscription, price not set, etc.) */}
+ {devicePriceData?.available === false &&
+ !devicePriceData?.max_device_limit ? (
{devicePriceData.reason || t('subscription.additionalOptions.devicesUnavailable')}
) : (
+ {/* Device selector - show even at max limit */}
- {devicePriceData && (
+ {/* Show limit info when at or near max */}
+ {devicePriceData?.max_device_limit && (
+
+ {t('subscription.additionalOptions.currentDeviceLimit', {
+ count: devicePriceData.current_device_limit || subscription.device_limit,
+ })}{' '}
+ / {t('subscription.additionalOptions.maxDevices', {
+ count: devicePriceData.max_device_limit,
+ })}
+
+ )}
+
+ {/* Show reason if can't add requested amount */}
+ {devicePriceData?.available === false && devicePriceData?.reason && (
+
+ {devicePriceData.reason}
+
+ )}
+
+ {/* Price info - only when available */}
+ {devicePriceData?.available && devicePriceData.price_per_device_label && (
{devicePriceData.price_per_device_label}/
@@ -1055,7 +1084,7 @@ export default function Subscription() {
)}
- {devicePriceData &&
+ {devicePriceData?.available &&
purchaseOptions &&
devicePriceData.total_price_kopeks &&
devicePriceData.total_price_kopeks > purchaseOptions.balance_kopeks && (
@@ -1071,6 +1100,7 @@ export default function Subscription() {
onClick={() => devicePurchaseMutation.mutate()}
disabled={
devicePurchaseMutation.isPending ||
+ !devicePriceData?.available ||
!!(
devicePriceData?.total_price_kopeks &&
purchaseOptions &&