// Shared legal-page renderer for Impressum, Datenschutz, and AGB.
//
// Each legal page passes a DOC object with { en, de } content. The right
// language renders based on window.CURRENT_LANG (set by i18n.js), so these
// pages switch with the existing EN/DE toggle.
//
// CONTENT STRUCTURE — a doc looks like:
// { en: { title, updated, intro, sections: [{ h, body:[...] }] },
// de: { ... same shape ... } }
// • body entries are plain strings (paragraphs) OR { list: [..] } for bullets.
// • Anything wrapped in [PLACEHOLDER …] is text you/your lawyer must replace.
function LegalPage({ doc, navKey }) {
const [tweaks, setTweak] = useTweaks(/*EDITMODE-BEGIN*/{ "themeColor": "navy" }/*EDITMODE-END*/);
useTweakBodyClasses(tweaks);
useLucideIcons([tweaks]);
const lang = window.CURRENT_LANG || "en";
const c = doc[lang] || doc.en;
return (
<>
{c.eyebrow}
{c.title}
{c.updated &&
{c.updated}
}
{c.intro && {c.intro}
}
{c.sections.map((s, i) => (
{s.h && {s.h}
}
{s.body.map((b, j) =>
typeof b === "string"
? {b}
: {b.list.map((li, k) => - {li}
)}
)}
))}
setTweak("themeColor", v)}
options={[
{ value: "navy", label: "Navy" },
{ value: "graphite", label: "Graphite" },
{ value: "emerald", label: "Emerald" },
{ value: "gold", label: "Gold" },
]} />
>
);
}
window.LegalPage = LegalPage;