Files
app/src/layouts/PublicLayout.vue
T

56 lines
1.7 KiB
Vue

<template>
<q-layout view="lHh Lpr lff">
<q-header>
<q-toolbar>
<q-toolbar-title>
{{ pageTitle || "Polétání.cz" }}
</q-toolbar-title>
<template v-if="loggedUser && loggedUser.id">
<router-link :to="{name: 'myFlights'}">
<AvatarFromPhoto :size="35" :src="loggedUser.avatarImageUrl"/>
</router-link>
</template>
<template v-else>
<router-link :to="{name: 'login'}">
<q-avatar icon="person" text-color="white">
<q-tooltip>
Login
</q-tooltip>
</q-avatar>
</router-link>
</template>
</q-toolbar>
</q-header>
<q-page-container>
<BreadcrumbsNavigation :items="breadcrumbs" v-if="breadcrumbs !== null"/>
<BreadcrumbsSkeleton v-if="breadcrumbs === null"/>
<router-view class="q-my-lg q-mx-lg"/>
</q-page-container>
<AppFooter />
</q-layout>
</template>
<script>
import {useLoggedUserStore} from "stores/LoggedUser";
export default {
preFetch() {
return useLoggedUserStore().fetchLoggedUserDetail({refresh: false}).catch(e => {});
}
}
</script>
<script setup>
import {storeToRefs} from "pinia";
import {useAppStore} from "stores/App";
import BreadcrumbsNavigation from "components/navigation/BreadcrumbsNavigation.vue";
import AvatarFromPhoto from "components/avatars/AvatarFromPhoto.vue";
import BreadcrumbsSkeleton from "components/navigation/BreadcrumbsSkeleton.vue";
import AppFooter from "components/AppFooter.vue";
const {pageTitle, breadcrumbs, appStatus} = storeToRefs(useAppStore());
const loggedUser = storeToRefs(useLoggedUserStore()).user;
</script>