import { prisma } from '@ketopath/db'; import { redirect } from 'next/navigation'; import { useTranslations } from 'next-intl'; import { setRequestLocale } from 'next-intl/server'; import { Masthead } from '@/components/masthead'; import { getServerSession } from '@/lib/auth'; import { fetchProfile } from '../profile/actions'; import { fetchPreferences } from '../profile/preferences-actions'; import type { ProfileForm } from '../profile/profile-form'; import { OnboardingFlow } from './onboarding-flow'; export default async function OnboardingPage({ params: { locale }, }: { params: { locale: string }; }) { setRequestLocale(locale); const session = await getServerSession(); if (!session?.user) redirect('/sign-in'); const user = await prisma.user.findUnique({ where: { id: session.user.id }, select: { disclaimerAcceptedAt: true }, }); if (!user?.disclaimerAcceptedAt) redirect('/welcome'); const [profile, preferences] = await Promise.all([fetchProfile(), fetchPreferences()]); return ( [0]['initial']} preferences={preferences} /> ); } function OnboardingPageContent({ profile, preferences, }: { profile: Parameters[0]['initial']; preferences: Awaited>; }) { const t = useTranslations('Onboarding'); return (

Capitolo III

{t('title')} .

{t('subtitle')}

); }