das marketing frontend wurde auf lokalisierte urls umgestellt.
This commit is contained in:
@@ -1,66 +1,96 @@
|
||||
import React from 'react';
|
||||
import React, { useMemo } from 'react';
|
||||
import { Link } from '@inertiajs/react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { useConsent } from '@/contexts/consent';
|
||||
import { useLocalizedRoutes } from '@/hooks/useLocalizedRoutes';
|
||||
|
||||
const Footer: React.FC = () => {
|
||||
|
||||
const { t } = useTranslation(['marketing', 'legal', 'common']);
|
||||
const { openPreferences } = useConsent();
|
||||
|
||||
|
||||
const { t } = useTranslation(['marketing', 'legal', 'common']);
|
||||
const { openPreferences } = useConsent();
|
||||
const { localizedPath } = useLocalizedRoutes();
|
||||
|
||||
const links = useMemo(() => ({
|
||||
home: localizedPath('/'),
|
||||
impressum: localizedPath('/impressum'),
|
||||
datenschutz: localizedPath('/datenschutz'),
|
||||
agb: localizedPath('/agb'),
|
||||
kontakt: localizedPath('/kontakt'),
|
||||
}), [localizedPath]);
|
||||
|
||||
const currentYear = new Date().getFullYear();
|
||||
|
||||
return (
|
||||
<footer className="bg-white border-t border-gray-200 mt-auto">
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||
<div>
|
||||
<div className="flex items-center gap-4">
|
||||
<img src="/logo-transparent-md.png" alt="FotoSpiel.App Logo" className="h-12 w-auto" />
|
||||
<div>
|
||||
<Link href="/" className="text-2xl font-bold font-display text-pink-500">
|
||||
Die FotoSpiel.App
|
||||
</Link>
|
||||
<p className="text-gray-600 font-sans-marketing mt-2">
|
||||
Deine Plattform für Event-Fotos.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer className="mt-auto border-t border-gray-200 bg-white">
|
||||
<div className="mx-auto max-w-7xl px-4 py-8 sm:px-6 lg:px-8">
|
||||
<div className="grid grid-cols-1 gap-8 md:grid-cols-3">
|
||||
<div>
|
||||
<div className="flex items-center gap-4">
|
||||
<img src="/logo-transparent-md.png" alt="FotoSpiel.App Logo" className="h-12 w-auto" />
|
||||
<div>
|
||||
<Link href={links.home} className="font-display text-2xl font-bold text-pink-500">
|
||||
Die FotoSpiel.App
|
||||
</Link>
|
||||
<p className="mt-2 font-sans-marketing text-gray-600">
|
||||
{t('marketing:footer.company', 'Fotospiel GmbH')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 className="font-semibold font-display text-gray-900 mb-4">Rechtliches</h3>
|
||||
<ul className="space-y-2 text-sm text-gray-600 font-sans-marketing">
|
||||
<li><Link href="/impressum" className="hover:text-pink-500 transition-colors">{t('legal:impressum')}</Link></li>
|
||||
<li><Link href="/datenschutz" className="hover:text-pink-500 transition-colors">{t('legal:datenschutz')}</Link></li>
|
||||
<li><Link href="/agb" className="hover:text-pink-500 transition-colors">{t('legal:agb')}</Link></li>
|
||||
<li><Link href="/kontakt" className="hover:text-pink-500 transition-colors">{t('marketing:nav.contact')}</Link></li>
|
||||
<li>
|
||||
<button
|
||||
type="button"
|
||||
onClick={openPreferences}
|
||||
className="hover:text-pink-500 transition-colors"
|
||||
>
|
||||
{t('common:consent.footer.manage_link')}
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="font-display mb-4 font-semibold text-gray-900">
|
||||
{t('legal:headline', 'Rechtliches')}
|
||||
</h3>
|
||||
<ul className="font-sans-marketing space-y-2 text-sm text-gray-600">
|
||||
<li>
|
||||
<Link href={links.impressum} className="transition-colors hover:text-pink-500">
|
||||
{t('legal:impressum')}
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href={links.datenschutz} className="transition-colors hover:text-pink-500">
|
||||
{t('legal:datenschutz')}
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href={links.agb} className="transition-colors hover:text-pink-500">
|
||||
{t('legal:agb')}
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href={links.kontakt} className="transition-colors hover:text-pink-500">
|
||||
{t('marketing:nav.contact')}
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<button
|
||||
type="button"
|
||||
onClick={openPreferences}
|
||||
className="transition-colors hover:text-pink-500"
|
||||
>
|
||||
{t('common:consent.footer.manage_link')}
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3 className="font-semibold font-display text-gray-900 mb-4">Social</h3>
|
||||
<ul className="space-y-2 text-sm text-gray-600 font-sans-marketing">
|
||||
<li><a href="#" className="hover:text-pink-500">Instagram</a></li>
|
||||
<li><a href="#" className="hover:text-pink-500">Facebook</a></li>
|
||||
<li><a href="#" className="hover:text-pink-500">YouTube</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="border-t border-gray-200 mt-8 pt-8 text-center text-sm text-gray-500 font-sans-marketing">
|
||||
© 2025 Die FotoSpiel.App - Alle Rechte vorbehalten.
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<div>
|
||||
<h3 className="font-display mb-4 font-semibold text-gray-900">
|
||||
{t('marketing:footer.social', 'Social')}
|
||||
</h3>
|
||||
<ul className="font-sans-marketing space-y-2 text-sm text-gray-600">
|
||||
<li><a href="#" className="hover:text-pink-500">Instagram</a></li>
|
||||
<li><a href="#" className="hover:text-pink-500">Facebook</a></li>
|
||||
<li><a href="#" className="hover:text-pink-500">YouTube</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="font-sans-marketing mt-8 border-t border-gray-200 pt-8 text-center text-sm text-gray-500">
|
||||
© {currentYear} Die FotoSpiel.App – {t('marketing:footer.rights_reserved', 'Alle Rechte vorbehalten')}.
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user