diff --git a/src/app/impressum/page.tsx b/src/app/impressum/page.tsx new file mode 100644 index 0000000..b2f6e1a --- /dev/null +++ b/src/app/impressum/page.tsx @@ -0,0 +1,241 @@ +import { Metadata } from 'next'; +import { ArrowLeft, Mail, Phone, MapPin, Building2, User, FileText } from 'lucide-react'; +import Link from 'next/link'; + +export const metadata: Metadata = { + title: 'Impressum', + description: 'Impressum und rechtliche Angaben', +}; + +/** + * Bot-proof Impressum page + * Contact info is rendered via CSS/JS to prevent simple scraping + * + * TO FILL IN: Edit the IMPRESSUM_DATA object below + */ + +// ========================================== +// HIER AUSFÜLLEN - Deine Impressumsdaten +// ========================================== +const IMPRESSUM_DATA = { + // Verantwortlicher + name: 'Max Mustermann', // TODO: Dein Name + + // Adresse + street: 'Musterstraße 123', // TODO: Straße + Hausnummer + city: '12345 Musterstadt', // TODO: PLZ + Stadt + country: 'Deutschland', + + // Kontakt (wird bot-sicher dargestellt) + email: { + user: 'kontakt', // TODO: Teil vor dem @ + domain: 'example.com', // TODO: Teil nach dem @ + }, + phone: { + prefix: '+49', // TODO: Ländervorwahl + area: '123', // TODO: Vorwahl + number: '4567890', // TODO: Rufnummer + }, + + // Optional: Firma + company: '', // TODO: Firmenname (leer lassen wenn Privatperson) + + // Optional: Handelsregister + registry: '', // z.B. 'HRB 12345' + registryCourt: '', // z.B. 'Amtsgericht München' + + // Optional: USt-IdNr. + vatId: '', // z.B. 'DE123456789' + + // Optional: Berufsbezeichnung / Aufsichtsbehörde (für bestimmte Berufe) + profession: '', + supervisoryAuthority: '', +}; +// ========================================== + +/** + * Bot-proof email display component + * Renders email in a way that's hard for bots to scrape + */ +function BotProofEmail({ user, domain }: { user: string; domain: string }) { + return ( + { + window.location.href = `mailto:${user}@${domain}`; + }} + title="E-Mail senden" + > + + + {user}@{domain} + + ); +} + +/** + * Bot-proof phone display component + */ +function BotProofPhone({ prefix, area, number }: { prefix: string; area: string; number: string }) { + const fullNumber = `${prefix}${area}${number}`; + return ( + { + window.location.href = `tel:${fullNumber}`; + }} + title="Anrufen" + > + + + {fullNumber} + + ); +} + +export default function ImpressumPage() { + const data = IMPRESSUM_DATA; + + return ( +
+ {/* Header */} +
+
+ + + +
+ +

Impressum

+
+
+
+ + {/* Content */} +
+ {/* Anbieter */} +
+

+ + Angaben gemäß § 5 TMG +

+ +
+ {data.company && ( +
+ + {data.company} +
+ )} + +
+ {data.name} +
+ +
+ +
+
{data.street}
+
{data.city}
+
{data.country}
+
+
+
+
+ + {/* Kontakt */} +
+

+ Kontakt +

+ +
+
+ +
+ {data.phone.number && ( +
+ +
+ )} +
+
+ + {/* Registerdaten */} + {(data.registry || data.vatId) && ( +
+

+ Registereintrag +

+ +
+ {data.registry && ( +
+ Handelsregister:{' '} + {data.registry} + {data.registryCourt && `, ${data.registryCourt}`} +
+ )} + {data.vatId && ( +
+ USt-IdNr.:{' '} + {data.vatId} +
+ )} +
+
+ )} + + {/* Berufshaftpflicht / Aufsicht */} + {(data.profession || data.supervisoryAuthority) && ( +
+

+ Berufsrechtliche Angaben +

+ +
+ {data.profession && ( +
+ Berufsbezeichnung:{' '} + {data.profession} +
+ )} + {data.supervisoryAuthority && ( +
+ Zuständige Aufsichtsbehörde:{' '} + {data.supervisoryAuthority} +
+ )} +
+
+ )} + + {/* Hinweis */} +
+ Stand: {new Date().toLocaleDateString('de-DE', { month: 'long', year: 'numeric' })} +
+ + {/* Links */} +
+ + Datenschutz + + + Zurück zur App + +
+
+
+ ); +}