feat: Add footer with legal links (Impressum, Datenschutz, Einstellungen)
This commit is contained in:
@@ -19,34 +19,34 @@ export const metadata: Metadata = {
|
||||
// ==========================================
|
||||
const IMPRESSUM_DATA = {
|
||||
// Verantwortlicher
|
||||
name: 'Max Mustermann', // TODO: Dein Name
|
||||
|
||||
name: 'Robin Schmidt', // TODO: Dein Name
|
||||
|
||||
// Adresse
|
||||
street: 'Musterstraße 123', // TODO: Straße + Hausnummer
|
||||
city: '12345 Musterstadt', // TODO: PLZ + Stadt
|
||||
street: 'Bergstraße 43', // TODO: Straße + Hausnummer
|
||||
city: '67067 Ludwigshafen', // TODO: PLZ + Stadt
|
||||
country: 'Deutschland',
|
||||
|
||||
|
||||
// Kontakt (wird bot-sicher dargestellt)
|
||||
email: {
|
||||
user: 'kontakt', // TODO: Teil vor dem @
|
||||
domain: 'example.com', // TODO: Teil nach dem @
|
||||
user: 'iamrobinschmidt', // TODO: Teil vor dem @
|
||||
domain: 'icloud.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: '',
|
||||
@@ -59,7 +59,7 @@ const IMPRESSUM_DATA = {
|
||||
*/
|
||||
function BotProofEmail({ user, domain }: { user: string; domain: string }) {
|
||||
return (
|
||||
<span
|
||||
<span
|
||||
className="inline-flex items-center gap-1.5 text-orange-500 cursor-pointer hover:underline"
|
||||
onClick={() => {
|
||||
window.location.href = `mailto:${user}@${domain}`;
|
||||
@@ -81,7 +81,7 @@ function BotProofEmail({ user, domain }: { user: string; domain: string }) {
|
||||
function BotProofPhone({ prefix, area, number }: { prefix: string; area: string; number: string }) {
|
||||
const fullNumber = `${prefix}${area}${number}`;
|
||||
return (
|
||||
<span
|
||||
<span
|
||||
className="inline-flex items-center gap-1.5 text-orange-500 cursor-pointer hover:underline"
|
||||
onClick={() => {
|
||||
window.location.href = `tel:${fullNumber}`;
|
||||
@@ -126,7 +126,7 @@ export default function ImpressumPage() {
|
||||
<User size={14} />
|
||||
Angaben gemäß § 5 TMG
|
||||
</h2>
|
||||
|
||||
|
||||
<div className="space-y-3">
|
||||
{data.company && (
|
||||
<div className="flex items-center gap-2 text-white">
|
||||
@@ -134,11 +134,11 @@ export default function ImpressumPage() {
|
||||
<span className="font-bold">{data.company}</span>
|
||||
</div>
|
||||
)}
|
||||
|
||||
|
||||
<div className="text-white font-bold">
|
||||
{data.name}
|
||||
</div>
|
||||
|
||||
|
||||
<div className="flex items-start gap-2 text-zinc-400">
|
||||
<MapPin size={16} className="text-zinc-500 mt-0.5" />
|
||||
<div>
|
||||
@@ -155,17 +155,17 @@ export default function ImpressumPage() {
|
||||
<h2 className="text-sm font-bold uppercase tracking-widest text-zinc-500 mb-4">
|
||||
Kontakt
|
||||
</h2>
|
||||
|
||||
|
||||
<div className="space-y-3">
|
||||
<div>
|
||||
<BotProofEmail user={data.email.user} domain={data.email.domain} />
|
||||
</div>
|
||||
{data.phone.number && (
|
||||
<div>
|
||||
<BotProofPhone
|
||||
prefix={data.phone.prefix}
|
||||
area={data.phone.area}
|
||||
number={data.phone.number}
|
||||
<BotProofPhone
|
||||
prefix={data.phone.prefix}
|
||||
area={data.phone.area}
|
||||
number={data.phone.number}
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
@@ -178,7 +178,7 @@ export default function ImpressumPage() {
|
||||
<h2 className="text-sm font-bold uppercase tracking-widest text-zinc-500 mb-4">
|
||||
Registereintrag
|
||||
</h2>
|
||||
|
||||
|
||||
<div className="space-y-2 text-zinc-400 text-sm">
|
||||
{data.registry && (
|
||||
<div>
|
||||
@@ -203,7 +203,7 @@ export default function ImpressumPage() {
|
||||
<h2 className="text-sm font-bold uppercase tracking-widest text-zinc-500 mb-4">
|
||||
Berufsrechtliche Angaben
|
||||
</h2>
|
||||
|
||||
|
||||
<div className="space-y-2 text-zinc-400 text-sm">
|
||||
{data.profession && (
|
||||
<div>
|
||||
|
||||
@@ -280,6 +280,17 @@ export default function Home() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Footer */}
|
||||
<footer className="pb-28 pt-8 text-center">
|
||||
<div className="flex justify-center gap-4 text-xs text-zinc-600">
|
||||
<a href="/impressum" className="hover:text-orange-500 transition-colors">Impressum</a>
|
||||
<span>•</span>
|
||||
<a href="/privacy" className="hover:text-orange-500 transition-colors">Datenschutz</a>
|
||||
<span>•</span>
|
||||
<a href="/settings" className="hover:text-orange-500 transition-colors">Einstellungen</a>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<BottomNavigation
|
||||
onScan={handleImageSelected}
|
||||
onHome={() => window.scrollTo({ top: 0, behavior: 'smooth' })}
|
||||
|
||||
Reference in New Issue
Block a user