templates2.Content.Next/components/AdminNav.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

30 lines
962 B
TypeScript

import Link from 'next/link';
import { t } from '@/lib/i18n';
type Item = { href: string; label: string; adminOnly?: boolean };
const ITEMS: Item[] = [
{ href: '/admin', label: t('admin.overview'), adminOnly: true },
{ href: '/admin/posts', label: t('admin.posts') },
{ href: '/admin/docs', label: t('admin.docs') },
{ href: '/admin/audit', label: t('admin.audit'), adminOnly: true },
{ href: '/admin/users', label: t('admin.users'), adminOnly: true },
];
export function AdminNav({ role }: { role: string }) {
const items = ITEMS.filter((item) => !item.adminOnly || role === 'admin');
return (
<nav className="flex flex-wrap gap-1 md:flex-col" aria-label="Admin">
{items.map((item) => (
<Link
key={item.href}
href={item.href}
className="rounded-lg px-3 py-2 text-sm font-medium hover:bg-black/5 dark:hover:bg-white/10"
>
{item.label}
</Link>
))}
</nav>
);
}