import { redirect } from "next/navigation"; import { MotionFade } from "@/components/motion-fade"; import { PortfolioProjectForm } from "@/components/root/portfolio-project-form"; import { PortfolioSubnav } from "@/components/root/portfolio-subnav"; import { RootDashboardShell } from "@/components/root/root-dashboard-shell"; import { AppCard } from "@/components/ui/app-card"; import { Button } from "@/components/ui/button"; import { CardContent } from "@/components/ui/card"; import { clearAdminSessionCookie, isAdminAuthenticated } from "@/lib/admin-auth"; import { getMediaOptions } from "@/lib/media"; import { getActivePortfolioCategories, getAdminPortfolioProjectById, } from "@/lib/portfolio"; import { deleteProjectAction, saveProjectAction } from "../../actions"; export const dynamic = "force-dynamic"; const copy = { title: "Portfolio Projekt bearbeiten", subtitle: "Projektstatus, Inhalte und Dateien anpassen.", overview: "Uebersicht", maintenance: "Wartungsmodus", uiKit: "UI Kit", media: "Media", siteSettings: "SEO", portfolio: "Portfolio", logout: "Ausloggen", backToSite: "Zur Website", saveProject: "Projekt speichern", dangerZone: "Gefahrenbereich", dangerText: "Projektdaten werden aus der Datenbank entfernt. Hochgeladene Dateien bleiben auf dem Speicher erhalten.", deleteProject: "Projekt loeschen", }; type RootPortfolioProjectPageProps = { params: { id: string; }; searchParams?: { success?: string; error?: string; }; }; export default async function RootPortfolioProjectPage({ params, searchParams, }: RootPortfolioProjectPageProps) { if (!isAdminAuthenticated()) { redirect("/root"); } async function logoutAction() { "use server"; clearAdminSessionCookie(); redirect("/root"); } const [categories, mediaOptions, project] = await Promise.all([ getActivePortfolioCategories(), getMediaOptions(), getAdminPortfolioProjectById(params.id), ]); if (!project) { redirect("/root/portfolio/projects?error=Project+not+found."); } return ( } >
{searchParams?.success ? (

{searchParams.success}

) : null} {searchParams?.error ? (

{searchParams.error}

) : null}

{copy.dangerZone}

{copy.dangerText}

); }