import { Boxes, FolderKanban, ImageIcon, Layers3, Plus, Tags } from "lucide-react"; import Link from "next/link"; import { redirect } from "next/navigation"; import { PortfolioSubnav } from "@/components/root/portfolio-subnav"; import { RootDashboardShell } from "@/components/root/root-dashboard-shell"; import { MotionFade } from "@/components/motion-fade"; import { AppCard } from "@/components/ui/app-card"; import { Button } from "@/components/ui/button"; import { CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { clearAdminSessionCookie, isAdminAuthenticated } from "@/lib/admin-auth"; import { getAdminPortfolioCategories, getAdminPortfolioProjects, } from "@/lib/portfolio"; export const dynamic = "force-dynamic"; const copy = { title: "Portfolio", subtitle: "Verwaltung fuer Kategorien, Projekte und Inhalte.", overview: "Uebersicht", maintenance: "Wartungsmodus", uiKit: "UI Kit", siteSettings: "SEO", portfolio: "Portfolio", logout: "Ausloggen", backToSite: "Zur Website", totalCategories: "Kategorien", totalProjects: "Projekte", publishedProjects: "Veroeffentlicht", categoriesAction: "Kategorien verwalten", projectsAction: "Projekte verwalten", newProject: "Neues Projekt", newCategory: "Neue Kategorie", media: "Media", }; export default async function RootPortfolioPage() { if (!isAdminAuthenticated()) { redirect("/root"); } async function logoutAction() { "use server"; clearAdminSessionCookie(); redirect("/root"); } const [categories, projects] = await Promise.all([ getAdminPortfolioCategories(), getAdminPortfolioProjects(), ]); const publishedProjects = projects.filter((project) => project.isPublished).length; return ( } headerActions={
} >
{[ { icon: Layers3, label: copy.totalCategories, value: categories.length, }, { icon: FolderKanban, label: copy.totalProjects, value: projects.length, }, { icon: Boxes, label: copy.publishedProjects, value: publishedProjects, }, ].map((item, index) => { const Icon = item.icon; return (

{item.label}

{item.value}

); })}
{copy.totalCategories} Sortieren, aktivieren und neue Portfolio Gruppen anlegen. {copy.totalProjects} Entwuerfe, veroeffentlichte Projekte und flexible Abschnitte pflegen. {copy.media} Alle Cover und Projektdateien an einem Ort pruefen.
); }