import { redirect } from "next/navigation" import { getServerSession } from "next-auth/next" import { authOptions } from "@/lib/auth" import { UserRole } from "@/types/database" import { AdminSidebar } from "@/components/admin/sidebar" import { Flags } from "@/lib/flags" export default async function AdminLayout({ children, }: { children: React.ReactNode }) { if (!Flags.ADMIN_ENABLED) { return (

Admin temporarily unavailable

We’re performing maintenance or addressing an incident. Please try again later.

) } // Check authentication and authorization const session = await getServerSession(authOptions) if (!session) { redirect("/auth/signin") } // Check if user has admin role if (session.user.role !== UserRole.SHOP_ADMIN && session.user.role !== UserRole.SUPER_ADMIN) { redirect("/unauthorized") } return (
{/* Sidebar */} {/* Main content */}
{/* Header */}

Admin Dashboard

Welcome, {session.user.name}
{session.user.image ? ( {session.user.name} ) : ( {session.user.name.charAt(0).toUpperCase()} )}
{/* Page content */}
{children}
) }