حسابك جاهز · إعداد سريع
اختر ما تريد تعلّمه أولاً.
سؤالان فقط لترتيب المكتبة حول هدفك، ثم نوضح الفرق بين الحساب المجاني والعضوية المدفوعة.
import Topnav from '@/components/topnav' import Footer from '@/components/footer' import { getPayload } from 'payload' import { headers } from 'next/headers' import configPromise from '@payload-config' import Link from 'next/link' import { redirect } from 'next/navigation' import OnboardingWizard from './client' import '../styles/member-onboarding.css' export const dynamic = 'force-dynamic' export const metadata = { title: 'إعداد حسابك' } /* Signup onboarding — design from member-onboarding.html. Interest + level persist to the user record (backend-aware, per locked decision). */ export default async function OnboardingPage() { let viewer: { id: number; email: string; interest: string | null; level: string | null; onboarded: boolean } | null = null try { const payload = await getPayload({ config: configPromise }) const { user } = await payload.auth({ headers: await headers() }) if (user) { viewer = { id: user.id, email: user.email, interest: (user.interest as string | null) ?? null, level: (user.level as string | null) ?? null, onboarded: !!user.onboarded, } } } catch { /* render wizard without persistence */ } if (!viewer) redirect('/login?next=%2Fonboarding') return (
حسابك جاهز · إعداد سريع
سؤالان فقط لترتيب المكتبة حول هدفك، ثم نوضح الفرق بين الحساب المجاني والعضوية المدفوعة.