@shopbite-de/storefront 1.7.0 → 1.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -77,9 +77,20 @@ const loggedOutDropDown = computed<DropdownMenuItem[][]>(() => {
77
77
  :items="isLoggedIn || isGuestSession ? loggedInDropDown : loggedOutDropDown"
78
78
  >
79
79
  <UChip v-if="isLoggedIn || isGuestSession" size="3xl" text="✓">
80
- <UButton icon="i-lucide-user" color="neutral" variant="outline" />
80
+ <UButton
81
+ aria-label="Konto Dropdown öffnen"
82
+ icon="i-lucide-user"
83
+ color="neutral"
84
+ variant="outline"
85
+ />
81
86
  </UChip>
82
- <UButton v-else icon="i-lucide-user" color="neutral" variant="outline" />
87
+ <UButton
88
+ v-else
89
+ aria-label="Konto Dropdown öffnen"
90
+ icon="i-lucide-user"
91
+ color="neutral"
92
+ variant="outline"
93
+ />
83
94
  </UDropdownMenu>
84
95
  <UDrawer
85
96
  v-if="isCheckoutEnabled"
@@ -89,6 +100,7 @@ const loggedOutDropDown = computed<DropdownMenuItem[][]>(() => {
89
100
  >
90
101
  <UChip :text="count" size="3xl">
91
102
  <UButton
103
+ aria-label="Zum Warenkorb"
92
104
  color="neutral"
93
105
  variant="outline"
94
106
  icon="i-lucide-shopping-cart"
@@ -7,6 +7,7 @@ const siteName = computed(() => config.public.site.name);
7
7
  <NuxtLink to="/" class="-m-1.5 p-1.5">
8
8
  <span class="sr-only">{{ siteName }}</span>
9
9
  <UColorModeImage
10
+ alt="Logo"
10
11
  light="/light/Logo.png"
11
12
  dark="/dark/Logo.png"
12
13
  class="h-12 w-auto"
@@ -22,18 +22,30 @@ withDefaults(
22
22
  usps: () => [],
23
23
  },
24
24
  );
25
+
26
+ const videoRef = ref<HTMLVideoElement>();
27
+
28
+ onMounted(() => {
29
+ // Handle video playback on bfcache restore
30
+ window.addEventListener("pageshow", (event) => {
31
+ if (event.persisted && videoRef.value) {
32
+ videoRef.value.play();
33
+ }
34
+ });
35
+ });
25
36
  </script>
26
37
 
27
38
  <template>
28
39
  <div class="relative">
29
40
  <video
41
+ ref="videoRef"
30
42
  autoplay
31
43
  loop
32
44
  muted
33
45
  playsinline
34
46
  class="absolute inset-0 w-full h-full object-cover -z-10"
35
47
  >
36
- <source :src="backgroundVideo" type="video/mp4" >
48
+ <source fetchpriority="high" :src="backgroundVideo" type="video/mp4" >
37
49
  </video>
38
50
  <div class="bg-black/50 backdrop-blur-sm">
39
51
  <UPageHero
@@ -27,7 +27,7 @@ defineProps<{
27
27
  >
28
28
  <template #body>
29
29
  <UCarousel
30
- v-slot="{ item }"
30
+ v-slot="{ item, index }"
31
31
  :items="images"
32
32
  class="mx-auto w-full"
33
33
  auto-height
@@ -35,6 +35,9 @@ defineProps<{
35
35
  loop
36
36
  >
37
37
  <img
38
+ v-if="item"
39
+ :loading="index === 0 ? 'eager' : 'lazy'"
40
+ :fetchpriority="index === 0 ? 'high' : 'low'"
38
41
  :src="item.image"
39
42
  :alt="item.alt"
40
43
  class="rounded-lg w-full max-h-screen object-contain"
package/content/index.yml CHANGED
@@ -5,7 +5,7 @@ seo:
5
5
  title: ShopBite
6
6
  description: Reduziere Kosten und steigere deinen Umsatz
7
7
  hero:
8
- backgroundVideo: https://shopware.shopbite.de/media/10/59/96/1762465181/background.mp4
8
+ backgroundVideo: https://shopware.shopbite.de/media/10/59/96/1762465181/background.mp4?ts=1762465194
9
9
  headline: SHOPBITE
10
10
  usps:
11
11
  - title: 4.5 ⭐
@@ -68,20 +68,19 @@ gallery:
68
68
  variant: subtle
69
69
  trailingIcon: i-lucide-phone
70
70
  images:
71
- - image: https://shopware.shopbite.de/media/71/2a/1a/1762465670/restaurant1.webp
71
+ - image: https://shopware.shopbite.de/media/71/2a/1a/1762465670/restaurant1.webp?ts=1762465670
72
72
  alt: La Fattoria Restaurant Innenbereich 1
73
- - image: https://shopware.shopbite.de/media/61/ea/77/1762465670/restaurant2.webp
73
+ - image: https://shopware.shopbite.de/media/61/ea/77/1762465670/restaurant2.webp?ts=1762465670
74
74
  alt: La Fattoria Restaurant Innenbereich 2
75
- - image: https://shopware.shopbite.de/media/6d/ac/ca/1762465670/restaurant3.webp
75
+ - image: https://shopware.shopbite.de/media/6d/ac/ca/1762465670/restaurant3.webp?ts=1762465670
76
76
  alt: La Fattoria Restaurant Innenbereich 3
77
- - image: https://shopware.shopbite.de/media/af/d6/da/1762465670/restaurant4.webp
77
+ - image: https://shopware.shopbite.de/media/af/d6/da/1762465670/restaurant4.webp?ts=1762465670
78
78
  alt: La Fattoria Restaurant Innenbereich 4
79
- - image: https://shopware.shopbite.de/media/6a/ff/e2/1762465670/restaurant5.webp
79
+ - image: https://shopware.shopbite.de/media/6a/ff/e2/1762465670/restaurant5.webp?ts=1762465670
80
80
  alt: La Fattoria Restaurant Innenbereich 5
81
- - image: https://shopware.shopbite.de/media/80/76/d0/1762465670/restaurant6.webp
81
+ - image: https://shopware.shopbite.de/media/80/76/d0/1762465670/restaurant6.webp?ts=1762465670
82
82
  alt: La Fattoria Restaurant Innenbereich 6
83
- - image: https://nbg1.your-objectstorage.com/lafattoria-public/media/30/f7/76/1763383122/restaurant10.webp
84
- alt: La Fattoria Restaurant Innenbereich 10
83
+
85
84
  cta:
86
85
  title: Jetzt bestellen!
87
86
  description: Genieße die italienische Küche, frisch zubereitet und direkt zu dir geliefert oder vor Ort genießen.
package/nuxt.config.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  // https://v3.nuxtjs.org/api/configuration/nuxt.config
2
+ const sw = process.env.SW === "true";
3
+
2
4
  export default defineNuxtConfig({
3
5
  app: {
4
6
  head: {
@@ -91,6 +93,7 @@ export default defineNuxtConfig({
91
93
  "@nuxt/ui",
92
94
  "@nuxt/scripts",
93
95
  "@nuxtjs/plausible",
96
+ "nuxt-vitalizer",
94
97
  ],
95
98
 
96
99
  plausible: {
@@ -101,30 +104,49 @@ export default defineNuxtConfig({
101
104
  experimental: { sqliteConnector: "native" },
102
105
  },
103
106
 
107
+ vitalizer: {
108
+ disablePrefetchLinks: true,
109
+ },
110
+
104
111
  pwa: {
112
+ strategies: sw ? "injectManifest" : "generateSW",
113
+ srcDir: sw ? "service-worker" : undefined,
114
+ filename: sw ? "sw.ts" : undefined,
115
+ registerType: "autoUpdate",
105
116
  manifest: {
106
117
  name: "ShopBite",
107
118
  short_name: "ShopBite",
108
119
  theme_color: "#ff5b00",
109
120
  icons: [
110
121
  {
111
- src: "dark/Logo.svg",
122
+ src: "shopbite-192.png",
112
123
  sizes: "192x192",
113
- type: "image/svg",
124
+ type: "image/png",
114
125
  },
115
126
  {
116
- src: "dark/Logo.svg",
127
+ src: "shopbite-512.png",
117
128
  sizes: "512x512",
118
- type: "image/svg",
129
+ type: "image/png",
119
130
  },
120
131
  {
121
- src: "dark/Logo.svg",
132
+ src: "shopbite-512.png",
122
133
  sizes: "512x512",
123
134
  type: "image/svg",
124
135
  purpose: "any maskable",
125
136
  },
126
137
  ],
127
138
  },
139
+ workbox: {
140
+ globPatterns: ["**/*.{js,css,html,png,svg,ico}"],
141
+ globIgnores: ["**/_payload.json"],
142
+ },
143
+ injectManifest: {
144
+ globPatterns: ["**/*.{js,css,html,png,svg,ico}"],
145
+ globIgnores: ["**/_payload.json"],
146
+ },
147
+ client: {
148
+ installPrompt: true,
149
+ },
128
150
  },
129
151
 
130
152
  nitro: {
@@ -144,6 +166,8 @@ export default defineNuxtConfig({
144
166
 
145
167
  experimental: {
146
168
  asyncContext: true,
169
+ payloadExtraction: true,
170
+ watcher: "parcel",
147
171
  },
148
172
  $development: {
149
173
  modules: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shopbite-de/storefront",
3
- "version": "1.7.0",
3
+ "version": "1.7.2",
4
4
  "main": "nuxt.config.ts",
5
5
  "description": "Shopware storefront for food delivery shops",
6
6
  "keywords": [
@@ -35,6 +35,7 @@
35
35
  "@vueuse/core": "^14.0.0",
36
36
  "dotenv": "^17.2.3",
37
37
  "nuxt": "^4.2.1",
38
+ "nuxt-vitalizer": "2.0.0",
38
39
  "uuid": "^13.0.0"
39
40
  },
40
41
  "devDependencies": {
Binary file
Binary file