import Image from "next/image"; import { redirect } from "next/navigation"; import AdminShell from "@/components/admin/AdminShell"; import { requireAdminSession } from "@/lib/admin/auth"; import { listMediaFiles } from "@/lib/admin/media"; function formatBytes(size: number) { if (size < 1024) return `${size} B`; if (size < 1024 * 1024) return `${(size / 1024).toFixed(1)} KB`; return `${(size / 1024 / 1024).toFixed(1)} MB`; } function uploadErrorMessage(error?: string) { if (!error) return ""; if (error === "missing-file") return "Bitte wählen Sie eine Datei aus."; if (error === "storage") return "Die Datei konnte nicht gespeichert werden. Bitte Upload-Speicher und Rechte prüfen."; return error; } export default async function AdminMediaPage({ searchParams }: { searchParams: Promise<{ uploaded?: string; error?: string }> }) { if (!await requireAdminSession()) redirect("/admin/login"); const [files, params] = await Promise.all([listMediaFiles(), searchParams]); const error = uploadErrorMessage(params.error); return (

Assets

Medienverwaltung

{params.uploaded === "1" &&

Datei wurde erfolgreich hochgeladen.

} {error &&

Upload fehlgeschlagen: {error}

}

Uploads

{files.length === 0 ? (

Noch keine Medien vorhanden

Hochgeladene Bilder und PDF-Dateien erscheinen hier mit Vorschau und Metadaten.

) : (
{files.map((file) => ( ))}
)}
); }