Files
fotospiel-app/resources/js/layouts/app/Footer.tsx

98 lines
3.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 { 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="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-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-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">
&copy; {currentYear} Die FotoSpiel.App {t('marketing:footer.rights_reserved', 'Alle Rechte vorbehalten')}.
</div>
</div>
</footer>
);
};
export default Footer;