From 9e6297568cd808bc7e84f6c048c06eb264792274 Mon Sep 17 00:00:00 2001 From: swve Date: Wed, 5 Mar 2025 15:11:26 +0100 Subject: [PATCH] feat: improve onboarding UI with mobile detection and quick skip options --- .../Objects/Onboarding/Onboarding.tsx | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/apps/web/components/Objects/Onboarding/Onboarding.tsx b/apps/web/components/Objects/Onboarding/Onboarding.tsx index 899bda0a..2824b11e 100644 --- a/apps/web/components/Objects/Onboarding/Onboarding.tsx +++ b/apps/web/components/Objects/Onboarding/Onboarding.tsx @@ -37,10 +37,26 @@ const Onboarding: React.FC = () => { const [isModalOpen, setIsModalOpen] = useState(false); const [isOnboardingComplete, setIsOnboardingComplete] = useState(true); const [isTemporarilyClosed, setIsTemporarilyClosed] = useState(false); + const [isMobile, setIsMobile] = useState(false); const router = useRouter(); const org = useOrg() as any; const isUserAdmin = useAdminStatus() as any; + useEffect(() => { + const checkMobile = () => { + setIsMobile(window.innerWidth < 768); + }; + + // Initial check + checkMobile(); + + // Add event listener for window resize + window.addEventListener('resize', checkMobile); + + // Cleanup + return () => window.removeEventListener('resize', checkMobile); + }, []); + const onboardingData: OnboardingStep[] = [ { imageSrc: OnBoardWelcome, @@ -208,6 +224,7 @@ const Onboarding: React.FC = () => { localStorage.setItem('isOnboardingCompleted', 'true'); localStorage.removeItem('onboardingLastStep'); // Clean up stored step setIsModalOpen(false); + setIsOnboardingComplete(true); console.log('Onboarding skipped'); }; @@ -219,7 +236,7 @@ const Onboarding: React.FC = () => { return (
- {isUserAdmin.isAdmin && !isUserAdmin.loading && !isOnboardingComplete && { /> } dialogTrigger={ -

Onboarding

+
{ + e.stopPropagation(); + skipOnboarding(); + }} + > + +
} @@ -307,6 +332,13 @@ const OnboardingScreen: React.FC = ({ >
+
+

End

+ +
{step.buttons?.map((button, index) => (