34 lines
810 B
TypeScript
34 lines
810 B
TypeScript
/**
|
|
* Onboarding Store (Zustand)
|
|
* Manages welcome/guide screen state and dismissal
|
|
*/
|
|
import { create } from 'zustand';
|
|
import { persist } from 'zustand/middleware';
|
|
|
|
interface OnboardingState {
|
|
isGuideDismissed: boolean;
|
|
isGuideVisible: boolean;
|
|
|
|
// Actions
|
|
dismissGuide: () => void;
|
|
showGuide: () => void;
|
|
toggleGuide: () => void;
|
|
}
|
|
|
|
export const useOnboardingStore = create<OnboardingState>()(
|
|
persist<OnboardingState>(
|
|
(set) => ({
|
|
isGuideDismissed: false,
|
|
isGuideVisible: false,
|
|
|
|
dismissGuide: () => set({ isGuideDismissed: true, isGuideVisible: false }),
|
|
showGuide: () => set({ isGuideVisible: true }),
|
|
toggleGuide: () => set((state) => ({ isGuideVisible: !state.isGuideVisible })),
|
|
}),
|
|
{
|
|
name: 'onboarding-storage',
|
|
}
|
|
)
|
|
);
|
|
|