ee5ae8af62
* explicitly ordering global middlewares * various subscription fixes & WIP project invite middleware * SSR invite accept & toast notifs seem to work * backend support for mixpanel * mixpanel be logic -> shared * minor fix * finissh * lint fix * minor comment adjustments * better adblock handling
45 lines
1.0 KiB
Vue
45 lines
1.0 KiB
Vue
<template>
|
|
<div
|
|
id="speckle"
|
|
class="bg-foundation-page text-foreground has-[.viewer]:!overflow-hidden has-[.viewer-transparent]:!bg-transparent"
|
|
>
|
|
<NuxtLayout>
|
|
<NuxtPage />
|
|
</NuxtLayout>
|
|
<SingletonManagers />
|
|
</div>
|
|
</template>
|
|
<script setup lang="ts">
|
|
import { useTheme } from '~~/lib/core/composables/theme'
|
|
import { useAuthManager } from '~~/lib/auth/composables/auth'
|
|
|
|
const { isDarkTheme } = useTheme()
|
|
|
|
useHead({
|
|
// Title suffix
|
|
titleTemplate: (titleChunk) => (titleChunk ? `${titleChunk} - Speckle` : 'Speckle'),
|
|
htmlAttrs: {
|
|
class: computed(() => (isDarkTheme.value ? `dark` : ``)),
|
|
lang: 'en'
|
|
},
|
|
bodyAttrs: {
|
|
class:
|
|
'simple-scrollbar overflow-y-scroll has-[.viewer]:overflow-auto bg-foundation-page text-foreground has-[.viewer-transparent]:!bg-transparent'
|
|
}
|
|
})
|
|
|
|
const { watchAuthQueryString } = useAuthManager()
|
|
watchAuthQueryString()
|
|
</script>
|
|
<style>
|
|
.page-enter-active,
|
|
.page-leave-active {
|
|
transition: all 0.1s;
|
|
}
|
|
|
|
.page-enter-from,
|
|
.page-leave-to {
|
|
opacity: 0;
|
|
}
|
|
</style>
|