diff --git a/src/pages/Connection.tsx b/src/pages/Connection.tsx index 24fd911..0bd6742 100644 --- a/src/pages/Connection.tsx +++ b/src/pages/Connection.tsx @@ -1,5 +1,5 @@ import { useEffect, useCallback, useMemo, useRef } from 'react'; -import { Link, useNavigate } from 'react-router'; +import { Link, useNavigate, useSearchParams } from 'react-router'; import { useTranslation } from 'react-i18next'; import { useQuery } from '@tanstack/react-query'; import { openLink as sdkOpenLink } from '@telegram-apps/sdk-react'; @@ -14,6 +14,8 @@ import InstallationGuide from '../components/connection/InstallationGuide'; export default function Connection() { const { t, i18n } = useTranslation(); const navigate = useNavigate(); + const [searchParams] = useSearchParams(); + const subId = searchParams.get('sub') ? Number(searchParams.get('sub')) : undefined; const user = useAuthStore((state) => state.user); const isAdmin = useAuthStore((state) => state.isAdmin); const { isTelegramWebApp } = useTelegramSDK(); @@ -27,8 +29,8 @@ export default function Connection() { isLoading, error, } = useQuery({ - queryKey: ['appConfig'], - queryFn: () => subscriptionApi.getAppConfig(), + queryKey: ['appConfig', subId], + queryFn: () => subscriptionApi.getAppConfig(subId), }); const handleGoBack = useCallback(() => { diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 64a08c0..7cdf4df 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -51,16 +51,6 @@ export default function Dashboard() { refetchOnMount: 'always', }); - const { data: subscriptionResponse, isLoading: subLoading } = useQuery({ - queryKey: ['subscription'], - queryFn: () => subscriptionApi.getSubscription(), - retry: false, - staleTime: API.BALANCE_STALE_TIME_MS, - refetchOnMount: 'always', - }); - - const subscription = subscriptionResponse?.subscription ?? null; - // Multi-tariff: check if user has multiple subscriptions const { data: multiSubData } = useQuery({ queryKey: ['subscriptions-list'], @@ -69,6 +59,17 @@ export default function Dashboard() { }); const isMultiTariff = multiSubData?.multi_tariff_enabled ?? false; + const { data: subscriptionResponse, isLoading: subLoading } = useQuery({ + queryKey: ['subscription'], + queryFn: () => subscriptionApi.getSubscription(), + retry: false, + staleTime: API.BALANCE_STALE_TIME_MS, + refetchOnMount: 'always', + enabled: !isMultiTariff, + }); + + const subscription = subscriptionResponse?.subscription ?? null; + const { data: trialInfo, isLoading: trialLoading } = useQuery({ queryKey: ['trial-info'], queryFn: () => subscriptionApi.getTrialInfo(), @@ -78,7 +79,7 @@ export default function Dashboard() { const { data: devicesData } = useQuery({ queryKey: ['devices'], queryFn: () => subscriptionApi.getDevices(), - enabled: !!subscription, + enabled: !!subscription && !isMultiTariff, staleTime: API.BALANCE_STALE_TIME_MS, }); diff --git a/src/pages/Subscription.tsx b/src/pages/Subscription.tsx index 84f8aa4..f51f94b 100644 --- a/src/pages/Subscription.tsx +++ b/src/pages/Subscription.tsx @@ -794,7 +794,7 @@ export default function Subscription() { haptic.notification('error'); return; } - navigate('/connection'); + navigate(subscriptionId ? `/connection?sub=${subscriptionId}` : '/connection'); }} className={`mb-5 flex w-full items-center gap-3.5 rounded-[14px] p-3.5 text-left transition-shadow duration-300${isAtDeviceLimit ? 'cursor-not-allowed opacity-50' : ''}`} style={{ fontFamily: 'inherit' }}