import { Power } from "lucide-react"; import { revalidatePath } from "next/cache"; import { redirect } from "next/navigation"; import { FormSaveButton } from "@/components/root/form-save-button"; import { MotionFade } from "@/components/motion-fade"; import { RootDashboardShell } from "@/components/root/root-dashboard-shell"; import { routing } from "@/i18n/routing"; import { getLocalizedPath } from "@/lib/locale"; import { clearAdminSessionCookie, isAdminAuthenticated } from "@/lib/admin-auth"; import { getMaintenanceMode, setMaintenanceMode } from "@/lib/app-config"; import { AppCard } from "@/components/ui/app-card"; import { Badge } from "@/components/ui/badge"; import { CardContent } from "@/components/ui/card"; import { Label } from "@/components/ui/label"; export const dynamic = "force-dynamic"; const copy = { title: "Wartungsmodus", subtitle: "Steuerung fuer den globalen Wartungsstatus.", overview: "Uebersicht", maintenance: "Wartungsmodus", uiKit: "UI Kit", media: "Media", siteSettings: "SEO", portfolio: "Portfolio", maintenanceText: "Wenn aktiv, werden alle Seiten auf die Coming Soon Seite weitergeleitet.", maintenanceOn: "Aktiv", maintenanceOff: "Inaktiv", selectLabel: "Status", selectHint: "Aenderung wird erst nach Speichern uebernommen.", logout: "Ausloggen", backToSite: "Zur Website", }; export default async function RootMaintenancePage() { const authenticated = isAdminAuthenticated(); if (!authenticated) { redirect("/root"); } const maintenanceEnabled = await getMaintenanceMode(); async function logoutAction() { "use server"; clearAdminSessionCookie(); redirect("/root"); } async function updateMaintenanceMode(formData: FormData) { "use server"; if (!isAdminAuthenticated()) { redirect("/root"); } const nextValue = formData.get("enabled") === "true"; await setMaintenanceMode(nextValue); revalidatePath("/", "layout"); revalidatePath("/coming-soon"); revalidatePath("/root"); revalidatePath("/root/maintenance"); for (const appLocale of routing.locales) { revalidatePath(getLocalizedPath(appLocale), "layout"); revalidatePath(getLocalizedPath(appLocale, "/coming-soon")); } redirect("/root/maintenance"); } return ( {maintenanceEnabled ? copy.maintenanceOn : copy.maintenanceOff} } >

{copy.maintenanceText}

{copy.selectHint}

{maintenanceEnabled ? copy.maintenanceOn : copy.maintenanceOff}
); }