diff --git a/src/pages/AdminUserDetail.tsx b/src/pages/AdminUserDetail.tsx index b402ae8..cdda415 100644 --- a/src/pages/AdminUserDetail.tsx +++ b/src/pages/AdminUserDetail.tsx @@ -336,6 +336,7 @@ export default function AdminUserDetail() { const [subDays, setSubDays] = useState(30); const [selectedTariffId, setSelectedTariffId] = useState(null); const [activeSubscriptionId, setActiveSubscriptionId] = useState(null); + const [subscriptionDetailView, setSubscriptionDetailView] = useState(false); // Promo group const [promoGroups, setPromoGroups] = useState([]); @@ -1379,40 +1380,133 @@ export default function AdminUserDetail() { {/* Subscription Tab */} {activeTab === 'subscription' && (
- {/* Subscription selector (when multiple) */} - {userSubscriptions.length > 1 && ( -
-
- {t('admin.users.detail.subscription.selectSubscription', 'Выберите подписку')} ( - {userSubscriptions.length}) -
-
+ {/* Multi-subscription: Level 1 — subscription list */} + {userSubscriptions.length > 1 && !subscriptionDetailView && ( + <> +
{userSubscriptions.map((sub) => ( ))}
-
+ + {/* Create new subscription — at list level */} + {hasPermission('users:subscription') && ( +
+
+ {t('admin.users.detail.subscription.createNew', 'Создать подписку')} +
+
+ + + +
+
+ )} + )} - {selectedSub ? ( + {/* Level 2 — subscription detail (or single subscription) */} + {(subscriptionDetailView || userSubscriptions.length <= 1) && selectedSub ? ( <> + {/* Back to list (multi-subscription) */} + {subscriptionDetailView && userSubscriptions.length > 1 && ( + + )} + {/* Current subscription */}
@@ -1602,9 +1696,11 @@ export default function AdminUserDetail() { - + {userSubscriptions.length <= 1 && ( + + )} @@ -1661,66 +1757,67 @@ export default function AdminUserDetail() { ) : null} - {/* Create new subscription (shown when no subs, or always in multi-tariff) */} - {hasPermission('users:subscription') && ( -
- {userSubscriptions.length === 0 && ( -
- {t('admin.users.detail.subscription.noActive')} + {/* Create new subscription (shown when no subs, or single-tariff mode) */} + {hasPermission('users:subscription') && + !(subscriptionDetailView && userSubscriptions.length > 1) && ( +
+ {userSubscriptions.length === 0 && ( +
+ {t('admin.users.detail.subscription.noActive')} +
+ )} +
+ {t('admin.users.detail.subscription.createNew', 'Создать подписку')} +
+
+ + +
- )} -
- {t('admin.users.detail.subscription.createNew', 'Создать подписку')}
-
- - - -
-
- )} + )} {/* Panel Info */} {panelInfoLoading ? (