import type { Metadata } from "next"; import { Suspense } from "react"; import { cookies } from "next/headers"; import MediaLibrary from "./MediaLibrary"; import { authCookieHeader } from "@/lib/cookies"; import { fetchAdminMediaLibrary, type MediaLibraryItem } from "@/lib/api"; import { getMeCached } from "@/lib/serverData"; import { isSuperOrOwner } from "@/lib/roles"; import Forbidden from "../Forbidden"; import AdminPageHeader from "@/components/admin/AdminPageHeader"; import { Images } from "lucide-react"; export const metadata: Metadata = { title: "媒体库", }; export default async function AdminMediaPage() { const cookie = authCookieHeader(await cookies()); const me = await getMeCached(cookie || undefined); if (!me.user || !isSuperOrOwner(me.user.role)) { return ; } let items: MediaLibraryItem[] = []; let counts: Record = {}; let total = 0; let initError = ""; try { const res = await fetchAdminMediaLibrary(cookie || undefined); items = res.items ?? []; counts = res.counts ?? {}; total = res.total ?? 0; } catch (e) { initError = e instanceof Error ? e.message : "加载失败"; } return (
加载中…

}>
); }