Auf Wunsch entfernt: der bislang auf JEDER Rechtstextseite sichtbare "[PLATZHALTER — vor Veröffentlichung rechtlich prüfen lassen]"-Hinweis (rechtliche Prüfung ist laut Auskunft bereits erfolgt). LegalPage zeigt den Hinweis jetzt nur noch an, wenn noticeText nicht leer ist. Datenschutzbeauftragte/r-Platzhalter durch eine begründete Standard-Aussage ersetzt (§ 38 BDSG greift bei einem Betrieb dieser Größe typischerweise nicht). Hosting-Platzhalter durch eine zutreffende Aussage ersetzt: die Seite laeuft auf selbst betriebener Infrastruktur, nicht bei einem externen Anbieter — kein AV-Vertrag noetig. NICHT ersetzt (siehe Chat): Name/Rechtsform/Handelsregister/USt-IdNr im Impressum — diese Angaben kenne ich nicht und darf sie nicht erfinden, eine falsche Handelsregisternummer waere ein echtes rechtliches Risiko. Dafuer wurden die echten Werte beim Nutzer angefragt. Co-Authored-By: Claude Sonnet 5 <[email protected]>
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { Container } from "@/components/ui";
|
|
|
|
export interface LegalSection {
|
|
heading: string;
|
|
paragraphs: string[];
|
|
}
|
|
|
|
/**
|
|
* Gemeinsames Layout fuer alle rechtlichen Seiten (Impressum, Datenschutz,
|
|
* AGB, Widerrufsbelehrung, Versand und Zahlung). Inhalte sind Platzhalter
|
|
* und muessen vor Live-Gang durch anwaltlich geprueften Text ersetzt werden.
|
|
*/
|
|
export function LegalPage({
|
|
title,
|
|
noticeText,
|
|
sections,
|
|
}: {
|
|
title: string;
|
|
/** Optional — leer lassen, wenn kein Hinweis (mehr) angezeigt werden soll. */
|
|
noticeText: string;
|
|
sections: LegalSection[];
|
|
}) {
|
|
return (
|
|
<div className="py-20">
|
|
<Container className="max-w-3xl">
|
|
<h1 className="text-3xl text-forest">{title}</h1>
|
|
{noticeText ? (
|
|
<p className="mt-2 text-xs text-honey-dark tracking-wide-caps">{noticeText}</p>
|
|
) : null}
|
|
<div className="mt-10 space-y-10">
|
|
{sections.map((section) => (
|
|
<section key={section.heading}>
|
|
<h2 className="text-lg text-forest">{section.heading}</h2>
|
|
<div className="mt-3 space-y-3 text-sm text-ink/70 leading-relaxed">
|
|
{section.paragraphs.map((p, i) => (
|
|
<p key={i}>{p}</p>
|
|
))}
|
|
</div>
|
|
</section>
|
|
))}
|
|
</div>
|
|
</Container>
|
|
</div>
|
|
);
|
|
}
|