56 lines
1.7 KiB
Vue
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>
|