From 60794f63e2bde8a4298fe7677f9cad4942fab3ef Mon Sep 17 00:00:00 2001 From: MaheshtheDev <38828053+MaheshtheDev@users.noreply.github.com> Date: Wed, 1 Oct 2025 21:59:53 +0000 Subject: UI: onboarding improvements (#435) UI: onboarding improvements ui(onboarding): updated onboarding ui patterns --- packages/hooks/use-onboarding-storage.ts | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 packages/hooks/use-onboarding-storage.ts (limited to 'packages') diff --git a/packages/hooks/use-onboarding-storage.ts b/packages/hooks/use-onboarding-storage.ts new file mode 100644 index 00000000..ce7a155d --- /dev/null +++ b/packages/hooks/use-onboarding-storage.ts @@ -0,0 +1,33 @@ +"use client" + +import { useCallback, useEffect, useState } from "react" + +const ONBOARDING_STORAGE_KEY = "supermemory_onboarding_completed" + +export function useOnboardingStorage() { + const [isOnboardingCompleted, setIsOnboardingCompleted] = useState< + boolean | null + >(null) + + useEffect(() => { + const completed = localStorage.getItem(ONBOARDING_STORAGE_KEY) + setIsOnboardingCompleted(completed === "true") + }, []) + + const markOnboardingCompleted = useCallback(() => { + localStorage.setItem(ONBOARDING_STORAGE_KEY, "true") + setIsOnboardingCompleted(true) + }, []) + + const shouldShowOnboarding = useCallback(() => { + if (isOnboardingCompleted === null) return null // Still loading + return !isOnboardingCompleted + }, [isOnboardingCompleted]) + + return { + isOnboardingCompleted, + markOnboardingCompleted, + shouldShowOnboarding, + isLoading: isOnboardingCompleted === null, + } +} -- cgit v1.2.3