import { redirect } from "next/navigation"; import AdminShell from "@/components/admin/AdminShell"; import { requireAdminSession } from "@/lib/admin/auth"; import { getContactInquiries, getRepairInquiries } from "@/lib/admin/store"; import { getSmtpSettings, isSmtpConfigured } from "@/lib/mail/config"; function countNew(items: T[]) { return items.filter((item) => item.status === "new").length; } export default async function AdminDashboardPage() { if (!await requireAdminSession()) redirect("/admin/login"); const [contacts, repairs, smtpSettings] = await Promise.all([getContactInquiries(), getRepairInquiries(), getSmtpSettings()]); const latest = [...contacts, ...repairs].sort((a, b) => b.createdAt.localeCompare(a.createdAt)).slice(0, 6); return (

Administration

Dashboard

Kontaktanfragen{countNew(contacts)}neu
Reparaturanfragen{countNew(repairs)}neu
WebsiteOnlineOK
SMTP{isSmtpConfigured(smtpSettings) ? "OK" : "Fehlt"}{smtpSettings.lastTestStatus ?? "kein Test"}

Letzte Anfragen

{latest.map((item) => ( ))} {latest.length === 0 && }
DatumNameTypStatus
{new Date(item.createdAt).toLocaleDateString("de-DE")} {item.name} {"manufacturer" in item ? "Reparatur" : "Kontakt"} {item.status}
Noch keine Anfragen vorhanden.
); }