From 4791a9f19605624bceb9bdba22a3e0c97168ea6e Mon Sep 17 00:00:00 2001 From: Fringg Date: Sat, 7 Feb 2026 01:19:22 +0300 Subject: [PATCH] fix: hide onboarding when blocking screen is active Onboarding tutorial was appearing on top of the channel subscription screen because Dashboard still mounts behind BlockingOverlay. Added blockingType check to prevent onboarding from triggering. --- src/pages/Dashboard.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 7feeeec..ee246f2 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -3,6 +3,7 @@ import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { Link, useNavigate } from 'react-router'; import { useTranslation } from 'react-i18next'; import { useAuthStore } from '../store/auth'; +import { useBlockingStore } from '../store/blocking'; import { subscriptionApi } from '../api/subscription'; import { referralApi } from '../api/referral'; import { balanceApi } from '../api/balance'; @@ -54,6 +55,7 @@ export default function Dashboard() { const [trialError, setTrialError] = useState(null); const { isCompleted: isOnboardingCompleted, complete: completeOnboarding } = useOnboarding(); const [showOnboarding, setShowOnboarding] = useState(false); + const { blockingType } = useBlockingStore(); // Refresh user data on mount useEffect(() => { @@ -185,13 +187,14 @@ export default function Dashboard() { const hasNoSubscription = subscriptionResponse?.has_subscription === false && !subLoading; // Show onboarding for new users after data loads + // Skip if a blocking screen is active (channel subscription, maintenance, etc.) useEffect(() => { - if (!isOnboardingCompleted && !subLoading && !refLoading) { + if (!isOnboardingCompleted && !subLoading && !refLoading && !blockingType) { // Small delay to ensure DOM is ready const timer = setTimeout(() => setShowOnboarding(true), 500); return () => clearTimeout(timer); } - }, [isOnboardingCompleted, subLoading, refLoading]); + }, [isOnboardingCompleted, subLoading, refLoading, blockingType]); // Define onboarding steps based on available data const onboardingSteps = useMemo(() => {