import type { Metadata } from "next"; import Link from "next/link"; import Image from "next/image"; import { draftMode } from "next/headers"; import { Reveal } from "../components/Reveal"; import { Footer } from "../components/Footer"; import { TrustRow } from "../components/TrustRow"; import { RichText, extractHeadings } from "../components/RichText"; import { LiveRichText } from "../components/LiveRichText"; import { SectionTOC, MobileSectionTOC } from "../components/SectionTOC"; import { getLegalPage } from "../lib/payload"; export const metadata: Metadata = { title: "Widerrufsrecht", description: "Widerrufsbelehrung und Muster-Widerrufsformular für einfach produktiv.", alternates: { canonical: "/widerruf" }, }; export default async function WiderrufPage() { const { isEnabled: isPreview } = await draftMode(); const page = await getLegalPage("widerruf", { draft: isPreview }); const headings = page ? extractHeadings(page.content) : []; return ( <>

Startseite Widerruf

Widerrufsrecht

Stand: Juli 2026

{/* MobileSectionTOC — below lg: only, see SectionTOC.tsx's own comment. Outside the sidebar's `hidden lg:flex` wrapper below (that wrapper's `hidden` would hide this too otherwise). */}
{/* Static, not part of the CMS content — same reasoning as the Impressum/Datenschutz/AGB pages' own callout cards. */}

Nachhaltig handeln

Wir setzen auf digitale Produkte und vermeiden unnötige Ressourcenverschwendung.

Für eine bessere Zukunft – für uns alle.

{page ? ( isPreview ? : ) : (

Inhalte werden gerade aktualisiert.

)} {/* Generated live from company-settings (/api/muster-widerrufsformular) instead of the CMS attachment field — see that route's own comment on why: the static uploaded PDF's "An:" address silently went stale whenever an admin updated the Impressum's Anbieterdaten without also re-exporting this file by hand. */}

Muster-Widerrufsformular (PDF)

Herunterladen