// 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;