@dargmuesli/nuxt-vio 3.0.0-beta.15 → 3.0.0-beta.16
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.
@@ -3,7 +3,7 @@
|
|
3
3
|
<div class="flex flex-col gap-8">
|
4
4
|
<div class="flex items-center">
|
5
5
|
<VioLayoutHr />
|
6
|
-
<
|
6
|
+
<slot name="logo" />
|
7
7
|
<VioLayoutHr />
|
8
8
|
</div>
|
9
9
|
<!-- Justifying evenly, instead of "between", centers a single element. -->
|
package/package.json
CHANGED
package/utils/constants.ts
CHANGED
@@ -30,3 +30,48 @@ export const I18N_VUE_CONFIG = {
|
|
30
30
|
export const TIMEZONE_COOKIE_NAME = [COOKIE_PREFIX, 'tz'].join(COOKIE_SEPARATOR)
|
31
31
|
export const TIMEZONE_HEADER_KEY = `X-${SITE_NAME}-Timezone`
|
32
32
|
export const VALIDATION_SUGGESTION_TITLE_LENGTH_MAXIMUM = 300
|
33
|
+
export const VIO_NUXT_BASE_CONFIG = ({
|
34
|
+
baseUrl,
|
35
|
+
siteName,
|
36
|
+
stagingHost,
|
37
|
+
}: {
|
38
|
+
baseUrl: string
|
39
|
+
siteName: string
|
40
|
+
stagingHost: string
|
41
|
+
}) => ({
|
42
|
+
app: {
|
43
|
+
head: {
|
44
|
+
title: SITE_NAME, // fallback data to prevent invalid html at generation
|
45
|
+
},
|
46
|
+
},
|
47
|
+
runtimeConfig: {
|
48
|
+
public: {
|
49
|
+
i18n: {
|
50
|
+
baseUrl,
|
51
|
+
},
|
52
|
+
vio: {
|
53
|
+
stagingHost:
|
54
|
+
process.env.NODE_ENV !== 'production' &&
|
55
|
+
!process.env.NUXT_PUBLIC_STACK_DOMAIN
|
56
|
+
? stagingHost
|
57
|
+
: undefined,
|
58
|
+
},
|
59
|
+
},
|
60
|
+
},
|
61
|
+
typescript: {
|
62
|
+
tsConfig: {
|
63
|
+
compilerOptions: {
|
64
|
+
esModuleInterop: true,
|
65
|
+
// moduleResolution: 'bundler',
|
66
|
+
// noErrorTruncation: true,
|
67
|
+
},
|
68
|
+
},
|
69
|
+
},
|
70
|
+
|
71
|
+
// modules
|
72
|
+
i18n: I18N_MODULE_CONFIG, // `langDir`, `lazy` and `locales` must be configured to extend a layer having lazy-loaded translations (https://v8.i18n.nuxtjs.org/guide/layers#locales)
|
73
|
+
site: {
|
74
|
+
name: siteName,
|
75
|
+
url: baseUrl,
|
76
|
+
},
|
77
|
+
})
|
@@ -1,101 +0,0 @@
|
|
1
|
-
<template>
|
2
|
-
<header class="mb-8 flex items-center justify-between gap-4">
|
3
|
-
<VioButton :aria-label="t('creal')" :to="localePath('/')">
|
4
|
-
<span class="text-lg font-bold">{{ t('creal') }}</span>
|
5
|
-
<template #prefix>
|
6
|
-
<VioIconLogo class="h-10 w-10" />
|
7
|
-
</template>
|
8
|
-
</VioButton>
|
9
|
-
<VioLink
|
10
|
-
v-if="eventsCurrentCount"
|
11
|
-
class="flex items-center gap-2 rounded-full border px-4 py-2 font-bold focus:rounded-full sm:px-4"
|
12
|
-
:is-colored="false"
|
13
|
-
:to="localePath('/events')"
|
14
|
-
>
|
15
|
-
<VioLayoutLivePulse />
|
16
|
-
<span class="hidden whitespace-nowrap sm:inline">
|
17
|
-
{{ t('live') }}
|
18
|
-
</span>
|
19
|
-
</VioLink>
|
20
|
-
<VioLink
|
21
|
-
v-else-if="eventsFutureCount"
|
22
|
-
class="flex items-center gap-2 rounded-full border px-2 py-2 font-bold focus:rounded-full sm:px-4"
|
23
|
-
:is-colored="false"
|
24
|
-
:to="localePath('/events')"
|
25
|
-
>
|
26
|
-
<VioLayoutLivePulse />
|
27
|
-
<span class="hidden whitespace-nowrap sm:inline">
|
28
|
-
{{ t('eventsFuture') }}
|
29
|
-
</span>
|
30
|
-
</VioLink>
|
31
|
-
<VioButton
|
32
|
-
:aria-label="t('bookCreal')"
|
33
|
-
class="basis-0 text-lg font-bold"
|
34
|
-
:is-colored="false"
|
35
|
-
:to="`mailto:e-mail+creal@jonas-thelemann.de?subject=${encodeURIComponent(
|
36
|
-
t('bookingSubject'),
|
37
|
-
)}`"
|
38
|
-
>
|
39
|
-
<span class="basis-0 whitespace-nowrap">{{ t('bookCreal') }}</span>
|
40
|
-
<template #suffix>
|
41
|
-
<VioIconArrowRight />
|
42
|
-
</template>
|
43
|
-
</VioButton>
|
44
|
-
</header>
|
45
|
-
</template>
|
46
|
-
|
47
|
-
<script setup lang="ts">
|
48
|
-
const { t } = useI18n()
|
49
|
-
const localePath = useLocalePath()
|
50
|
-
const strapiFetch = useStrapiFetch()
|
51
|
-
const dateTime = useDateTime()
|
52
|
-
|
53
|
-
// async data
|
54
|
-
let eventsCurrentCount = 0
|
55
|
-
let eventsFutureCount = 0
|
56
|
-
|
57
|
-
// data
|
58
|
-
const now = dateTime()
|
59
|
-
|
60
|
-
// methods
|
61
|
-
const init = async () => {
|
62
|
-
eventsCurrentCount = (
|
63
|
-
(await strapiFetch('/events', {
|
64
|
-
query: {
|
65
|
-
'filters[$and][0][dateStart][$lte]': now.toISOString(),
|
66
|
-
'filters[$and][1][$or][0][dateEnd][$gt]': now.toISOString(),
|
67
|
-
'filters[$and][1][$or][1][dateStart][$gte]': now
|
68
|
-
.startOf('day')
|
69
|
-
.toISOString(),
|
70
|
-
},
|
71
|
-
})) as any
|
72
|
-
).meta.pagination.total
|
73
|
-
eventsFutureCount = (
|
74
|
-
(await strapiFetch('/events', {
|
75
|
-
query: {
|
76
|
-
'filters[dateStart][$gt]': now.toISOString(),
|
77
|
-
},
|
78
|
-
})) as any
|
79
|
-
).meta.pagination.total
|
80
|
-
}
|
81
|
-
|
82
|
-
// initialization
|
83
|
-
try {
|
84
|
-
await init()
|
85
|
-
} catch (error: any) {}
|
86
|
-
</script>
|
87
|
-
|
88
|
-
<i18n lang="yaml">
|
89
|
-
en:
|
90
|
-
bookCreal: Book cReal
|
91
|
-
bookingSubject: Booking Request
|
92
|
-
creal: cReal
|
93
|
-
eventsFuture: Upcoming events
|
94
|
-
live: Live
|
95
|
-
de:
|
96
|
-
bookCreal: cReal buchen
|
97
|
-
bookingSubject: Buchungsanfrage
|
98
|
-
creal: cReal
|
99
|
-
eventsFuture: Kommende Veranstaltungen
|
100
|
-
live: Live
|
101
|
-
</i18n>
|