mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-27 17:52:16 +00:00
[feat] Cloud onboarding flow implementation (#5494)
* feature: cloud onboarding scaffolding
* fix: redirect unknown routes
* feature: cloud onboarding flow
* chore: code review
* test: api mock for test failing
* refactor: Centralize onboarding routing with dedicated check views
- Add UserCheckView to handle all user status routing decisions
- Add InviteCheckView to manage invite code validation flow
- Simplify auth.ts by removing async operations and extra complexity
- Update login/signup to always redirect through UserCheckView
- Remove distributed routing logic from all onboarding components
- Simplify router guards to delegate to check views
- Fix infinite redirect loops for non-whitelisted users
- Use window.location.href for final navigation to bypass router conflicts
Breaking changes:
- Removed claimInvite from auth.ts (moved to CloudClaimInviteView)
- Changed route names to use cloud- prefix consistently
- Simplified getMe() to synchronous function
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: delete unused file
* Revert "test: api mock for test failing"
This reverts commit 06ca56c05e.
* feature: API applied
* feature: survey view
* feature: signup / login view completed
* style: min-h-screen deleted
* feature: completed login flow
* feature: router view added
---------
Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
33
src/platform/onboarding/cloud/InviteCheckView.vue
Normal file
33
src/platform/onboarding/cloud/InviteCheckView.vue
Normal file
@@ -0,0 +1,33 @@
|
||||
<template>
|
||||
<div />
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { nextTick, onMounted } from 'vue'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
|
||||
import { getInviteCodeStatus } from '@/api/auth'
|
||||
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
|
||||
onMounted(async () => {
|
||||
await nextTick()
|
||||
|
||||
const inviteCode = route.query.inviteCode as string
|
||||
const inviteCodeStatus = await getInviteCodeStatus(inviteCode)
|
||||
|
||||
// TODO: should be deleted when api is ready
|
||||
// if (!status.emailVerified) {
|
||||
// await router.push({ name: 'cloud-verify-email' })
|
||||
// return
|
||||
// }
|
||||
|
||||
if (inviteCodeStatus.expired) {
|
||||
await router.push({ name: 'cloud-sorry-contact-support' })
|
||||
return
|
||||
}
|
||||
|
||||
await router.push({ name: 'cloud-claim-invite' })
|
||||
})
|
||||
</script>
|
||||
Reference in New Issue
Block a user