diff --git a/apps/web/modules/onboarding/getting-started/onboarding-view.tsx b/apps/web/modules/onboarding/getting-started/onboarding-view.tsx index 76b2d0e9e0..4cb6c66a24 100644 --- a/apps/web/modules/onboarding/getting-started/onboarding-view.tsx +++ b/apps/web/modules/onboarding/getting-started/onboarding-view.tsx @@ -25,10 +25,15 @@ type OnboardingViewProps = { export const OnboardingView = ({ userEmail }: OnboardingViewProps) => { const router = useRouter(); const { t } = useLocale(); - const { selectedPlan, setSelectedPlan } = useOnboardingStore(); + const { selectedPlan, setSelectedPlan, resetOnboardingPreservingPlan } = useOnboardingStore(); const previousPlanRef = useRef(null); const [isPending, startTransition] = useTransition(); + // Reset onboarding data when visiting this page, but preserve the selected plan + useEffect(() => { + resetOnboardingPreservingPlan(); + }, []); + // Plan order mapping for determining direction const planOrder: Record = { personal: 0, diff --git a/apps/web/modules/onboarding/store/onboarding-store.ts b/apps/web/modules/onboarding/store/onboarding-store.ts index d9774e60f5..b7a6500f68 100644 --- a/apps/web/modules/onboarding/store/onboarding-store.ts +++ b/apps/web/modules/onboarding/store/onboarding-store.ts @@ -87,6 +87,7 @@ export interface OnboardingState { // Reset resetOnboarding: () => void; + resetOnboardingPreservingPlan: () => void; } const initialState = { @@ -167,6 +168,11 @@ export const useOnboardingStore = create()( })), resetOnboarding: () => set(initialState), + resetOnboardingPreservingPlan: () => + set((state) => ({ + ...initialState, + selectedPlan: state.selectedPlan, + })), }), { name: "cal-onboarding-storage", // Storage key