presseportale/resources/views/components/web/hub/site-footer.blade.php
Kevin Adametz 515e249132 Recht (Web): Vertrag-widerrufen-Button + zweistufiges Widerrufs-Modal im Hub
Gut sichtbare Schaltflaeche "Vertrag widerrufen" im Footer; das Modal
fuehrt zweistufig durch den Widerruf: Schritt 1 nur Zuordnungsdaten,
Schritt 2 Kontrollansicht mit Bestaetigungsbutton "Jetzt widerrufen".
Erfolgs-/Fehlerzustand oeffnet automatisch (getrennter Error-Bag,
kollidiert nicht mit dem Kontakt-Modal).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 10:03:37 +00:00

82 lines
4.7 KiB
PHP

@props([
'brand' => null,
])
@php
$themeKey = config('app.theme', 'pressekonto');
$brand = $brand ?? config('domains.domains.' . $themeKey . '.brand', []);
$brandTagline = $brand['tagline_short'] ?? 'Publisher · Hub';
$brandTaglineLong = $brand['tagline_long'] ?? 'Der gemeinsame Publisher-Bereich für presseecho und businessportal24.';
$footerLegal = str_replace(':year', (string) now()->year, $brand['footer_legal'] ?? '© ' . now()->year . ' pressekonto');
@endphp
<footer class="bg-hub-grad-2 text-ink-on-dark">
<div class="max-w-layout mx-auto px-8 py-14 grid gap-10" style="grid-template-columns:1.5fr 1fr 1fr 1fr;">
<div>
<div class="text-[24px] font-bold leading-none tracking-[-0.5px]">
<x-web.brand-mark brand="pressekonto" variant="on-dark" :serif="false" />
</div>
<div class="eyebrow on-dark mt-2 text-[9.5px] tracking-[0.22em]">
{{ $brandTagline }}
</div>
<p class="text-[12.5px] text-white/65 leading-[1.65] mt-4 max-w-[340px]">
{{ $brandTaglineLong }}
</p>
<div class="mt-5 pt-5 border-t border-white/15 text-[12px] text-white/65">
Brand-Familie:
<a class="font-semibold underline underline-offset-[3px] decoration-white/30 ml-1" href="{{ config('domains.domain_presseecho_url') }}">
<x-web.brand-mark brand="presseecho" variant="on-dark" />
</a>
<span class="mx-2 text-white/30">·</span>
<a class="font-semibold underline underline-offset-[3px] decoration-white/30" href="{{ config('domains.domain_businessportal_url') }}">
<x-web.brand-mark brand="businessportal24" variant="on-dark" />
</a>
</div>
</div>
<div>
<div class="eyebrow on-dark mb-3.5">Konto</div>
<ul class="space-y-2 text-[13px] text-white/75 list-none p-0 m-0">
@auth
<li><a href="{{ \App\Support\LoginRedirect::homeFor(auth()->user()) }}" class="hover:text-white transition-colors">Zum pressekonto</a></li>
@else
<li><a href="{{ route('login') }}" class="hover:text-white transition-colors">Anmelden</a></li>
<li><a href="{{ route('register') }}" class="hover:text-white transition-colors">Konto erstellen</a></li>
@endauth
<li><a href="#tarife" class="hover:text-white transition-colors">Tarife</a></li>
<li><button type="button" x-data @click="$dispatch('open-contact-modal')" class="hover:text-white transition-colors cursor-pointer">Kontakt aufnehmen</button></li>
</ul>
</div>
<div>
<div class="eyebrow on-dark mb-3.5">Plattform</div>
<ul class="space-y-2 text-[13px] text-white/75 list-none p-0 m-0">
<li><a href="#funktion" class="hover:text-white transition-colors">So funktioniert es</a></li>
<li><a href="#familie" class="hover:text-white transition-colors">Die Portale</a></li>
<li><a href="{{ route('docs.api.v1') }}" class="hover:text-white transition-colors">API-Referenz</a></li>
</ul>
</div>
<div>
<div class="eyebrow on-dark mb-3.5">Rechtliches</div>
<ul class="space-y-2 text-[13px] text-white/75 list-none p-0 m-0">
<li><a href="{{ route('impressum', ['edition' => 'de']) }}" class="hover:text-white transition-colors">Impressum</a></li>
<li><a href="{{ route('agb', ['edition' => 'de']) }}" class="hover:text-white transition-colors">AGB</a></li>
<li><a href="{{ route('datenschutz', ['edition' => 'de']) }}" class="hover:text-white transition-colors">Datenschutz</a></li>
<li><a href="{{ route('cookies', ['edition' => 'de']) }}" class="hover:text-white transition-colors">Cookies</a></li>
</ul>
{{-- Gesetzlicher Widerrufsbutton: gut sichtbare Schaltfläche mit klarer Aufschrift. --}}
<button type="button" x-data @click="$dispatch('open-withdrawal-modal')"
class="mt-4 inline-flex items-center justify-center px-4 py-2 text-[12.5px] font-semibold text-white border border-white/40 hover:border-white hover:bg-white/10 rounded-[4px] transition-colors cursor-pointer">
Vertrag widerrufen
</button>
</div>
</div>
<div class="border-t border-white/15">
<div class="max-w-layout mx-auto px-8 py-5 flex items-center justify-between gap-4 text-[11.5px] text-white/55">
<span>{{ $footerLegal }}</span>
</div>
</div>
</footer>