38 lines
1.4 KiB
TypeScript
38 lines
1.4 KiB
TypeScript
import { redirect } from "next/navigation";
|
|
import AdminShell from "@/components/admin/AdminShell";
|
|
import { requireAdminSession } from "@/lib/admin/auth";
|
|
|
|
const editablePages = [
|
|
["Startseite", "Hero, Vorteile, Textblöcke"],
|
|
["Leistungen", "Funktechnik, Messtechnik, Servicebereiche"],
|
|
["Funkgeräte-Service", "Diagnose, Abgleich, Fehlerbilder"],
|
|
["Reparatur", "Reparaturannahme und Hinweise"],
|
|
["Über uns", "Profil und Werkstattbeschreibung"],
|
|
["Kontakt", "Kontakttext und Hinweise"],
|
|
] as const;
|
|
|
|
export default async function AdminWebsitePage() {
|
|
if (!await requireAdminSession()) redirect("/admin/login");
|
|
|
|
return (
|
|
<AdminShell>
|
|
<div className="admin-page-head">
|
|
<p className="eyebrow">Website</p>
|
|
<h1>Website-Inhalte</h1>
|
|
</div>
|
|
<section className="admin-card">
|
|
<h2>Editierbare Inhalte</h2>
|
|
<p className="admin-muted">Diese Foundation bereitet die Inhaltsverwaltung vor. Die öffentliche Website bleibt bis zur finalen Publishing-Funktion weiterhin quellcodebasiert.</p>
|
|
<div className="admin-detail-grid">
|
|
{editablePages.map(([title, description]) => (
|
|
<article key={title} className="admin-detail">
|
|
<h3>{title}</h3>
|
|
<p>{description}</p>
|
|
<button className="button light" type="button" disabled>Bearbeiten vorbereitet</button>
|
|
</article>
|
|
))}
|
|
</div>
|
|
</section>
|
|
</AdminShell>
|
|
);
|
|
}
|