templates2.Content.Next/app/admin/layout.tsx
w4c-templates 3caefb8833
Some checks are pending
CI / quality (push) Waiting to run
chore(template): publish Content.Next
2026-10-11 23:29:57 +03:00

32 lines
1.1 KiB
TypeScript

import Link from 'next/link';
import { AdminNav } from '@/components/AdminNav';
import { requireContentStaff } from '@/lib/server/auth';
import { roleLabel } from '@/lib/rbac';
import { t } from '@/lib/i18n';
export const dynamic = 'force-dynamic';
export default async function AdminLayout({ children }: { children: React.ReactNode }) {
const staff = await requireContentStaff();
return (
<div className="flex min-h-screen flex-col">
<header className="border-b" style={{ borderColor: 'var(--border)' }}>
<div className="page flex h-16 items-center justify-between">
<Link href="/" className="text-lg font-bold">
{t('brand.name')} <span className="muted font-normal">/ {t('admin.title')}</span>
</Link>
<span className="muted text-sm">
{staff.email} · {roleLabel(staff.role)}
</span>
</div>
</header>
<div className="page flex flex-1 flex-col gap-6 py-8 md:flex-row">
<aside className="md:w-52 md:shrink-0">
<AdminNav role={staff.role} />
</aside>
<main className="min-w-0 flex-1">{children}</main>
</div>
</div>
);
}