import { redirect } from "next/navigation"; import { PortfolioProjectsOverview } from "@/components/admin/portfolio-projects-overview"; import { AdminDashboardShell } from "@/components/admin/admin-dashboard-shell"; import { readFlash } from "@/lib/admin-feedback"; import { clearAdminSessionCookie, isAdminAuthenticated } from "@/lib/admin-auth"; import { getAdminAppPath } from "@/lib/admin-routing"; import { getAdminPortfolioCategories, getAdminPortfolioProjects } from "@/lib/portfolio"; export const dynamic = "force-dynamic"; const copy = { title: "Portfolio Projekte", subtitle: "Projektliste und Einstieg in die komplette Bearbeitung.", overview: "Uebersicht", maintenance: "Wartungsmodus", uiKit: "UI Kit", media: "Media", siteSettings: "Settings", portfolio: "Portfolio", logout: "Ausloggen", backToSite: "Zur Website", }; type AdminPortfolioProjectsPageProps = { searchParams?: Promise<{ category?: string; status?: "all" | "draft" | "published"; success?: string; error?: string; }>; }; export default async function AdminPortfolioProjectsPage({ searchParams, }: AdminPortfolioProjectsPageProps) { const resolvedSearchParams = await searchParams; const flash = readFlash(resolvedSearchParams); if (!(await isAdminAuthenticated())) { redirect(getAdminAppPath("/")); } async function logoutAction() { "use server"; await clearAdminSessionCookie(); redirect(getAdminAppPath("/")); } const selectedCategory = resolvedSearchParams?.category && resolvedSearchParams.category !== "__all__" ? resolvedSearchParams.category : ""; const selectedStatus = resolvedSearchParams?.status === "draft" || resolvedSearchParams?.status === "published" ? resolvedSearchParams.status : "all"; const [categories, projects] = await Promise.all([ getAdminPortfolioCategories(), getAdminPortfolioProjects({ categoryId: selectedCategory || undefined, status: selectedStatus, }), ]); return (
); }