import { mkdir, readdir } from "fs/promises"; import path from "path"; import Image from "next/image"; import { redirect } from "next/navigation"; import AdminShell from "@/components/admin/AdminShell"; import { requireAdminSession } from "@/lib/admin/auth"; const uploadDir = path.join(process.cwd(), "public", "uploads", "images"); async function getFiles() { await mkdir(uploadDir, { recursive: true }); return readdir(uploadDir); } export default async function AdminMediaPage() { if (!await requireAdminSession()) redirect("/admin/login"); const files = await getFiles(); return (

Assets

Medienverwaltung

Uploads

{files.map((file) => { const url = `/uploads/images/${file}`; return ( {/\.(png|jpe?g|webp)$/i.test(file) ? {file} : {file}} ); })} {files.length === 0 &&

Noch keine Uploads vorhanden.

}
); }