-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.vue
59 lines (50 loc) · 1.19 KB
/
app.vue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<template lang="pug">
nuxt-layout(:name="layoutName")
nuxt-page
alert-modal(
:alert="alert"
)
</template>
<script setup>
import { onMounted } from 'vue'
import {
breakpointsBootstrapV5,
useBreakpoints,
} from '@vueuse/core'
import { useLayoutStore } from '~/stores/useLayout.js'
import { useRoute } from 'vue-router'
import AlertModal from '~/components/AlertModal.vue'
const route = useRoute()
const layoutName = ref('')
layoutName.value = (route.path === '/') ? 'main-page' : 'common-with-auth'
const { $on } = useNuxtApp()
const alert = ref({
type: '',
message: '',
})
$on('alert', ({type, message}) => {
alert.value = {
type, message
}
})
onMounted(async () => {
window.addEventListener('resize', (evt) => {
const layoutStore = useLayoutStore()
if (layoutStore.isOpenedSidebar) {
const breakpoints = useBreakpoints(breakpointsBootstrapV5)
if (!breakpoints.isSmallerOrEqual('lg')) {
layoutStore.isOpenedSidebar = false
}
}
})
})
const layoutStore = useLayoutStore()
useHead({
bodyAttrs: {
'data-bs-theme': 'dark',
class: computed(() => {
return (layoutStore.isOpenedSidebar) ? 'is-sidebar-opened' : ''
}),
},
})
</script>