diff options
| author | MaheshtheDev <[email protected]> | 2025-10-01 21:59:53 +0000 |
|---|---|---|
| committer | MaheshtheDev <[email protected]> | 2025-10-01 21:59:53 +0000 |
| commit | 60794f63e2bde8a4298fe7677f9cad4942fab3ef (patch) | |
| tree | 66f13d6d153ccb9c60eb5cb2476326374bc1c315 /packages/hooks | |
| parent | feat: new onboarding flow (#408) (diff) | |
| download | supermemory-60794f63e2bde8a4298fe7677f9cad4942fab3ef.tar.xz supermemory-60794f63e2bde8a4298fe7677f9cad4942fab3ef.zip | |
UI: onboarding improvements (#435)09-23-ui_onboarding_improvements
UI: onboarding improvements
ui(onboarding): updated onboarding ui patterns
Diffstat (limited to 'packages/hooks')
| -rw-r--r-- | packages/hooks/use-onboarding-storage.ts | 33 |
1 files changed, 33 insertions, 0 deletions
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, + } +} |