Scrum4Me/app/(app)/admin/layout.tsx
Scrum4Me Agent 31edfa8194 feat(ST-111ci8t4): /admin/users pagina met tabel, role-editor en delete-dialog
- app/(app)/admin/layout.tsx: admin-sidebar met links (Gebruikers/Claude Jobs/Producten)
- app/(app)/admin/page.tsx: redirect naar /admin/users
- app/(app)/admin/users/page.tsx: server component, query users+roles, geeft userId door
- components/admin/users-table.tsx: client component met UsersTable, RoleBadge,
  RolesDialog (checkboxes, eigen ADMIN-rol geblokkeerd), DeleteDialog (confirm),
  ResetToggle — alles via useTransition + server actions
2026-05-05 14:44:04 +02:00

16 lines
745 B
TypeScript

import { requireAdmin } from '@/lib/auth-guard'
import Link from 'next/link'
export default async function AdminLayout({ children }: { children: React.ReactNode }) {
await requireAdmin()
return (
<div className="flex min-h-screen">
<nav className="w-48 border-r p-4 flex flex-col gap-2">
<Link href="/admin/users" className="text-sm font-medium text-foreground hover:text-primary">Gebruikers</Link>
<Link href="/admin/jobs" className="text-sm font-medium text-foreground hover:text-primary">Claude Jobs</Link>
<Link href="/admin/products" className="text-sm font-medium text-foreground hover:text-primary">Producten</Link>
</nav>
<main className="flex-1 p-6">{children}</main>
</div>
)
}