diff --git a/src/onboardingCloudRoutes.ts b/src/onboardingCloudRoutes.ts index 2049027db..cbc25d0d3 100644 --- a/src/onboardingCloudRoutes.ts +++ b/src/onboardingCloudRoutes.ts @@ -16,7 +16,23 @@ export const cloudOnboardingRoutes: RouteRecordRaw[] = [ path: 'login', name: 'cloud-login', component: () => - import('@/platform/onboarding/cloud/CloudLoginView.vue') + import('@/platform/onboarding/cloud/CloudLoginView.vue'), + beforeEnter: async (to, _from, next) => { + // Only redirect if not explicitly switching accounts + if (!to.query.switchAccount) { + const { useCurrentUser } = await import( + '@/composables/auth/useCurrentUser' + ) + const { isLoggedIn } = useCurrentUser() + + if (isLoggedIn.value) { + // User is already logged in, redirect to user-check + // user-check will handle survey, waitlist, or main page routing + return next({ name: 'cloud-user-check' }) + } + } + next() + } }, { path: 'signup', diff --git a/src/platform/onboarding/cloud/CloudClaimInviteView.vue b/src/platform/onboarding/cloud/CloudClaimInviteView.vue index 83e5057c2..7df24e23d 100644 --- a/src/platform/onboarding/cloud/CloudClaimInviteView.vue +++ b/src/platform/onboarding/cloud/CloudClaimInviteView.vue @@ -98,7 +98,10 @@ const inviteCode = computed(() => route.query.inviteCode as string) const onSwitchAccounts = () => { void router.push({ name: 'cloud-login', - query: { inviteCode: inviteCode.value } + query: { + switchAccount: 'true', + inviteCode: inviteCode.value + } }) } const onClickSupport = () => { diff --git a/src/platform/onboarding/cloud/CloudWaitlistView.vue b/src/platform/onboarding/cloud/CloudWaitlistView.vue index 9a4f0d120..975cbf4b2 100644 --- a/src/platform/onboarding/cloud/CloudWaitlistView.vue +++ b/src/platform/onboarding/cloud/CloudWaitlistView.vue @@ -52,7 +52,8 @@ const router = useRouter() const onSwitchAccounts = () => { void router.push({ - name: 'cloud-login' + name: 'cloud-login', + query: { switchAccount: 'true' } }) } diff --git a/src/platform/onboarding/cloud/UserCheckView.vue b/src/platform/onboarding/cloud/UserCheckView.vue index 586519587..1d4c584f1 100644 --- a/src/platform/onboarding/cloud/UserCheckView.vue +++ b/src/platform/onboarding/cloud/UserCheckView.vue @@ -80,7 +80,7 @@ const { } // User is fully onboarded (active or whitelist check disabled) - await router.replace('/') + window.location.href = '/' }), null, { resetOnExecute: false }