2021-07-24 20:56:37 +02:00
|
|
|
<template>
|
2021-07-25 13:03:34 +02:00
|
|
|
<NavBar />
|
2021-08-15 16:40:11 +02:00
|
|
|
<div v-if="appLoading" class="app-container">
|
|
|
|
<div class="app-loading">
|
|
|
|
<Loader />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div v-else class="app-container">
|
|
|
|
<router-view v-if="appConfig" />
|
|
|
|
<NoConfig v-else />
|
2021-08-15 09:24:10 +02:00
|
|
|
</div>
|
2021-07-25 17:10:55 +02:00
|
|
|
<Footer />
|
2021-07-24 20:56:37 +02:00
|
|
|
</template>
|
|
|
|
|
2021-07-25 13:03:34 +02:00
|
|
|
<script lang="ts">
|
2021-08-15 16:40:11 +02:00
|
|
|
import { computed, ComputedRef, defineComponent, onBeforeMount } from 'vue'
|
2021-08-11 22:21:26 +02:00
|
|
|
|
2021-08-15 16:40:11 +02:00
|
|
|
import Loader from '@/components/Common/Loader.vue'
|
2021-08-21 18:34:06 +02:00
|
|
|
import Footer from '@/components/Footer.vue'
|
2021-07-25 13:23:25 +02:00
|
|
|
import NavBar from '@/components/NavBar.vue'
|
2021-08-15 16:40:11 +02:00
|
|
|
import NoConfig from '@/components/NoConfig.vue'
|
2021-08-21 18:34:06 +02:00
|
|
|
import { ROOT_STORE } from '@/store/constants'
|
2021-08-21 18:36:44 +02:00
|
|
|
import { IAppConfig } from '@/types/application'
|
2021-08-21 18:34:06 +02:00
|
|
|
import { useStore } from '@/use/useStore'
|
2021-07-25 13:03:34 +02:00
|
|
|
|
2021-07-25 13:23:25 +02:00
|
|
|
export default defineComponent({
|
|
|
|
name: 'App',
|
|
|
|
components: {
|
2021-07-25 17:10:55 +02:00
|
|
|
Footer,
|
2021-08-15 16:40:11 +02:00
|
|
|
Loader,
|
2021-07-25 13:23:25 +02:00
|
|
|
NavBar,
|
2021-08-15 16:40:11 +02:00
|
|
|
NoConfig,
|
2021-07-25 13:23:25 +02:00
|
|
|
},
|
2021-08-15 12:30:39 +02:00
|
|
|
setup() {
|
|
|
|
const store = useStore()
|
2021-08-15 16:40:11 +02:00
|
|
|
const appConfig: ComputedRef<IAppConfig> = computed(
|
|
|
|
() => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]
|
|
|
|
)
|
|
|
|
const appLoading: ComputedRef<boolean> = computed(
|
|
|
|
() => store.getters[ROOT_STORE.GETTERS.APP_LOADING]
|
|
|
|
)
|
2021-08-15 12:30:39 +02:00
|
|
|
onBeforeMount(() =>
|
|
|
|
store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG)
|
|
|
|
)
|
2021-08-15 16:40:11 +02:00
|
|
|
return {
|
|
|
|
appConfig,
|
|
|
|
appLoading,
|
|
|
|
}
|
2021-08-15 12:30:39 +02:00
|
|
|
},
|
2021-07-25 13:23:25 +02:00
|
|
|
})
|
2021-07-25 13:03:34 +02:00
|
|
|
</script>
|
|
|
|
|
2021-07-24 20:56:37 +02:00
|
|
|
<style lang="scss">
|
2021-08-04 09:10:00 +02:00
|
|
|
@import '~@/scss/base';
|
2021-08-15 09:24:10 +02:00
|
|
|
.app-container {
|
|
|
|
height: $app-height;
|
2021-08-15 16:40:11 +02:00
|
|
|
|
|
|
|
.app-loading {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
height: 100%;
|
|
|
|
}
|
2021-08-15 09:24:10 +02:00
|
|
|
}
|
2021-07-24 20:56:37 +02:00
|
|
|
</style>
|