Newer
Older
<div id="app" :key="locale" class="tw-flex tw-flex-col tw-min-h-screen">
<AppNavbar :modules="modules" :user="user" />
<div class="tw-flex-1 tw-flex tw-my-8">
<RouterView v-if="user.steeringUser" />
<Home v-else :modules="modules" :user="user" />

Richard Blechinger
committed
<AppFooter :modules="footerModules" :user="user" />
<script setup lang="ts">
import AppNavbar from './components/Navbar.vue'
import AppFooter from './components/Footer.vue'
import { useStore } from 'vuex'
import { useI18n } from '@/i18n'
import { computed } from 'vue'
import { computedIter } from '@/util'
const store = useStore()
const { locale, t } = useI18n()
const user = computed(() => store.state.auth.user)
const footerModules = computedIter(function* () {
if (user.value.steeringUser && user.value.steeringUser.is_superuser) {
yield {
slug: 'settings',
title: t('navigation.settings'),
}
}
})
const modules = computedIter(function* () {
if (user.value.steeringUser) {
yield {
icon: '/assets/shows.svg',
slug: 'shows',
title: t('navigation.shows'),
yield {
icon: '/assets/files.svg',
slug: 'files',
title: t('navigation.filesPlaylists'),
}
}
if (user.value.steeringUser && user.value.steeringUser.is_superuser) {
yield {
icon: '/assets/calendar.svg',
slug: 'calendar',
title: t('navigation.calendar'),
store.dispatch('auth/oidcInit')