spomeni/src/app/admin/(panel)/dashboard/page.tsx
dimitar 09acf20b9b fix(admin): restructure routes into groups to prevent redirect loop
- Move login page into (auth) route group — no layout wrapper
- Move dashboard/users/codes + layout into (panel) route group —
  session check and sidebar only apply to these
- URL paths remain unchanged (/admin/login, /admin/dashboard, etc.)
2026-07-29 19:28:44 +02:00

30 lines
1.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { prisma } from "@/lib/prisma";
export default async function AdminDashboardPage() {
const [adminCount, codeCount, usedCodeCount] = await Promise.all([
prisma.adminUser.count(),
prisma.code.count(),
prisma.code.count({ where: { usedByUserId: { not: null } } }),
]);
return (
<div>
<h1 className="mb-8 text-2xl font-semibold text-stone-900">Контролна табла</h1>
<div className="grid gap-6 sm:grid-cols-3">
<div className="rounded-lg bg-white p-6 shadow-sm">
<p className="text-sm text-stone-500">Администратори</p>
<p className="mt-1 text-3xl font-semibold text-stone-900">{adminCount}</p>
</div>
<div className="rounded-lg bg-white p-6 shadow-sm">
<p className="text-sm text-stone-500">Генерирани кодови</p>
<p className="mt-1 text-3xl font-semibold text-stone-900">{codeCount}</p>
</div>
<div className="rounded-lg bg-white p-6 shadow-sm">
<p className="text-sm text-stone-500">Искористени кодови</p>
<p className="mt-1 text-3xl font-semibold text-stone-900">{usedCodeCount}</p>
</div>
</div>
</div>
);
}