Files
shop/components/Footer.vue
Michael Czechowski 44107c0734
Some checks failed
Build and publish / build (push) Failing after 19s
feat: extract shop from mp/shop — initial libreshop/shop
Source moved verbatim from mp/shop/ on 2026-04-29; mp was the first
concrete adapter consuming the libreshop toolkit. Builds and publishes
git.librete.ch/libreshop/shop on every main / v* push via the standard
.gitea/workflows/build.yml shared across libreshop components.
2026-04-29 17:48:56 +02:00

105 lines
4.6 KiB
Vue
Raw Permalink 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.

<template>
<footer class="bg-gray-900 text-white">
<!-- Trust Bar -->
<TrustBar variant="light" />
<div class="mx-auto xl:container p-6 pt-8 lg:pt-20 lg:py-7">
<div class="md:flex md:justify-between">
<div class="mb-12">
<NuxtLink to="/" class="flex items-center" @click="trackEvent('footer-logo-clicked')">
<span class="tracking-wide text-3xl font-bebas leading-none"> MUELLERPRINTS.<br />Paperwork </span>
</NuxtLink>
<p class="mt-4 text-white">
Mo - Do 9.00 - 16.00 Uhr<br />
Fr 9.00 - 14.00 Uhr<br />
und nach Vereinbarung
</p>
</div>
<div class="grid grid-cols-1 gap-8 lg:gap-6 lg:grid-cols-4">
<div>
<!-- Intentionally left empty -->
</div>
<div>
<h2 class="mb-4 text-sm font-semibold uppercase">Kollektion</h2>
<ul class="text-gray-400 font-medium mb-4">
<li v-for="item in sortedCovers" :key="item.id" class="mb-2 lg:mb-4">
<NuxtLink
:title="item.description ?? item.label"
:to="`/notebooks/${item.slug}`"
class="hover:text-white"
aria-label="Navigation"
@click="trackEvent('footer-link-clicked', { section: 'kollektion', label: item.label })"
>
{{ item.label }}
</NuxtLink>
</li>
</ul>
</div>
<div>
<h2 class="mb-4 text-sm font-semibold uppercase">Über uns</h2>
<ul class="text-gray-400 font-medium mb-4">
<li class="mb-2 lg:mb-4">
<NuxtLink to="/about" class="hover:text-white" @click="trackEvent('footer-link-clicked', { section: 'about', label: 'About' })">About</NuxtLink>
</li>
<li class="mb-2 lg:mb-4">
<NuxtLink to="/oeffnungszeiten" class="hover:text-white" @click="trackEvent('footer-link-clicked', { section: 'about', label: 'Öffnungszeiten' })">Öffnungszeiten</NuxtLink>
</li>
<li class="mb-2 lg:mb-4">
<NuxtLink to="/anfahrt" class="hover:text-white" @click="trackEvent('footer-link-clicked', { section: 'about', label: 'Anfahrt' })">Anfahrt</NuxtLink>
</li>
<li class="mb-2 lg:mb-4">
<NuxtLink to="/kontakt" class="hover:text-white" @click="trackEvent('footer-link-clicked', { section: 'about', label: 'Kontakt' })">Kontakt</NuxtLink>
</li>
<li class="mb-2 lg:mb-4">
<a title="Sitemap" href="/sitemap.xml" target="_blank" class="hover:text-white" @click="trackEvent('footer-link-clicked', { section: 'about', label: 'Sitemap' })">Sitemap</a>
</li>
</ul>
</div>
<div>
<h2 class="mb-4 text-sm font-semibold uppercase">Rechtliches</h2>
<ul class="text-gray-400 font-medium mb-4">
<li class="mb-2 lg:mb-4">
<NuxtLink to="/impressum" class="hover:text-white" @click="trackEvent('footer-link-clicked', { section: 'legal', label: 'Impressum' })">Impressum</NuxtLink>
</li>
<li class="mb-2 lg:mb-4">
<NuxtLink to="/datenschutz" class="hover:text-white" @click="trackEvent('footer-link-clicked', { section: 'legal', label: 'Datenschutz' })">Datenschutzerklärung</NuxtLink>
</li>
<li class="mb-2 lg:mb-4">
<NuxtLink to="/agb" class="hover:text-white" @click="trackEvent('footer-link-clicked', { section: 'legal', label: 'AGB' })">Allgemeine Geschäftsbedingungen (AGB)</NuxtLink>
</li>
<li class="mb-2 lg:mb-4">
<NuxtLink to="/zahlung" class="hover:text-white" @click="trackEvent('footer-link-clicked', { section: 'legal', label: 'Zahlung' })">Zahlungsarten</NuxtLink>
</li>
<li>
<NuxtLink to="/versand" class="hover:text-white" @click="trackEvent('footer-link-clicked', { section: 'legal', label: 'Versand' })">Versandarten</NuxtLink>
</li>
</ul>
</div>
</div>
</div>
<hr class="my-6 sm:mx-auto border-gray-700 lg:my-8" />
<div class="flex flex-col-reverse lg:flex-row items-center justify-between gap-8">
<span class="text-gray-400">
© {{ currentYear }} <a href="/" class="hover:text-white">MUELLERPRINTS. PAPERWORK</a> Alle Rechte vorbehalten
</span>
<div class="flex flex-col lg:flex-row mt-4 lg:mt-0 items-start lg:items-center text-gray-400 gap-8">
<span>Unterstützte Zahlungsanbieter: BAR, VISA, Mastercard und PayPal</span>
<img class="h-12" src="~/assets/visa-mastercard-paypal.svg" alt="VISA Mastercard PayPal Logos" />
</div>
</div>
</div>
</footer>
</template>
<script setup lang="ts">
import type { CoverNavItem } from "~/types";
const props = defineProps<{
covers: CoverNavItem[];
}>();
const currentYear = new Date().getFullYear();
const sortedCovers = computed(() => [...props.covers].sort((a, b) => (a.sort ?? 0) - (b.sort ?? 0)));
</script>