// app/admin/page.tsx (server component) import { getServerSession } from 'next-auth'; import { authOptions } from '@/lib/auth-options'; import { redirect } from 'next/navigation'; import AdminClient from './admin-client'; // the client UI component (see below) export const dynamic = 'force-dynamic'; export default async function AdminPage() { const session = await getServerSession(authOptions); const role = (session as any)?.user?.role ?? null; if (!session?.user) { redirect('/login'); } if (!(role === 'admin' || role === 'superadmin')) { redirect('/dashboard'); } // authorised — render the client admin UI return ; }