Files
agent-park/src/app/[locale]/admin/layout.tsx
T

45 lines
1.3 KiB
TypeScript

import Link from 'next/link'
import { getTranslations } from 'next-intl/server'
export default async function AdminLayout({
children,
params,
}: {
children: React.ReactNode
params: Promise<{ locale: string }>
}) {
const { locale } = await params
const t = await getTranslations('admin')
const navItems = [
{ href: `/${locale}/admin/chat`, label: t('navChat') },
{ href: `/${locale}/admin/resources`, label: t('navResources') },
{ href: `/${locale}/admin/policies/proposals`, label: t('navPolicies') },
{ href: `/${locale}/admin/runs`, label: t('navRuns') },
{ href: `/${locale}/admin/logs`, label: t('navLogs') },
]
return (
<main className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-10 space-y-6">
<section className="neo-card p-6 bg-primary text-black">
<h1 className="font-display text-3xl font-bold">{t('title')}</h1>
<p className="text-sm mt-2 max-w-4xl">{t('subtitle')}</p>
</section>
<nav className="neo-card p-4 flex flex-wrap gap-3">
{navItems.map((item) => (
<Link
key={item.href}
href={item.href}
className="neo-btn bg-white dark:bg-surface-dark px-3 py-2 text-xs"
>
{item.label}
</Link>
))}
</nav>
{children}
</main>
)
}