diff --git a/src/pages/SubscriptionPurchase.tsx b/src/pages/SubscriptionPurchase.tsx index 967637f..829a9fe 100644 --- a/src/pages/SubscriptionPurchase.tsx +++ b/src/pages/SubscriptionPurchase.tsx @@ -45,7 +45,12 @@ export default function SubscriptionPurchase() { const subscription = subscriptionResponse?.subscription ?? null; // Purchase options - const { data: purchaseOptions, isLoading: optionsLoading } = useQuery({ + const { + data: purchaseOptions, + isLoading: optionsLoading, + isError: optionsError, + refetch: refetchOptions, + } = useQuery({ queryKey: ['purchase-options'], queryFn: subscriptionApi.getPurchaseOptions, staleTime: 0, @@ -362,6 +367,58 @@ export default function SubscriptionPurchase() { ); } + if (optionsError || (!purchaseOptions && !optionsLoading)) { + return ( +
+
+ +

+ {t('subscription.extend')} +

+
+
+

+ {t('subscription.loadError', 'Не удалось загрузить варианты подписки')} +

+ +
+
+ ); + } + return (
{/* Header with back link */} @@ -1936,6 +1993,30 @@ export default function SubscriptionPurchase() { )}
)} + + {/* No options available fallback */} + {purchaseOptions && + !optionsLoading && + !(isTariffsMode && tariffs.length > 0) && + !(classicOptions && classicOptions.periods.length > 0) && ( +
+

+ {t('subscription.noOptionsAvailable', 'Нет доступных вариантов подписки')} +

+ +
+ )} ); }