mirror of
https://github.com/yusufipk/OpenFrame.git
synced 2026-09-11 17:46:06 +00:00
feat(onboarding): add onboarding wizard flow
- Add `onboardingCompletedAt` field to User model + migration - Add AUDIO/R2_AUDIO enum values to schema - Gate dashboard behind onboarding check; redirect to /onboarding if not completed - Add /onboarding page + layout with 5-step wizard (welcome, workspace, project, video info, notifications) - Add POST /api/onboarding/complete endpoint to mark onboarding done Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
d4f4220520
commit
31fda8a28c
@@ -0,0 +1,24 @@
|
||||
import { auth } from '@/lib/auth';
|
||||
import { db } from '@/lib/db';
|
||||
import { redirect } from 'next/navigation';
|
||||
import { OnboardingWizard } from './onboarding-wizard';
|
||||
|
||||
export default async function OnboardingPage() {
|
||||
const session = await auth();
|
||||
if (!session?.user?.id) {
|
||||
redirect('/login');
|
||||
}
|
||||
|
||||
const user = await db.user.findUnique({
|
||||
where: { id: session.user.id },
|
||||
select: { onboardingCompletedAt: true, name: true, email: true },
|
||||
});
|
||||
|
||||
if (user?.onboardingCompletedAt) {
|
||||
redirect('/dashboard');
|
||||
}
|
||||
|
||||
const userName = user?.name || user?.email?.split('@')[0] || 'there';
|
||||
|
||||
return <OnboardingWizard userName={userName} />;
|
||||
}
|
||||
Reference in New Issue
Block a user