mirror of
https://github.com/nocodb/nocodb.git
synced 2026-04-30 22:56:42 +00:00
* fix: get rid of barrel files * chore: get rid of explicit imports * fix: use explicit import for classes and enums * fix: use explicit import for enum & class & aliases * fix: build issues
51 lines
1017 B
Vue
51 lines
1017 B
Vue
<script lang="ts" setup>
|
|
import { useTitle } from '@vueuse/core'
|
|
|
|
const route = useRoute()
|
|
|
|
const { te, t } = useI18n()
|
|
|
|
const { hasSidebar } = useSidebar('nc-left-sidebar')
|
|
|
|
const refreshSidebar = ref(false)
|
|
|
|
const sidebarReady = ref(false)
|
|
|
|
useTitle(route.meta?.title && te(route.meta.title) ? `${t(route.meta.title)}` : 'NocoDB')
|
|
|
|
watch(hasSidebar, (val) => {
|
|
if (!val) {
|
|
refreshSidebar.value = true
|
|
nextTick(() => {
|
|
refreshSidebar.value = false
|
|
})
|
|
}
|
|
})
|
|
|
|
onMounted(() => {
|
|
until(() => document.querySelector('#nc-sidebar-left'))
|
|
.toBeTruthy()
|
|
.then(() => {
|
|
sidebarReady.value = true
|
|
})
|
|
})
|
|
</script>
|
|
|
|
<script lang="ts">
|
|
export default {
|
|
name: 'DefaultLayout',
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<div class="w-full h-full">
|
|
<Teleport v-if="sidebarReady" :to="hasSidebar ? '#nc-sidebar-left' : null" :disabled="!hasSidebar">
|
|
<slot v-if="!refreshSidebar" name="sidebar" />
|
|
</Teleport>
|
|
|
|
<a-layout-content>
|
|
<slot />
|
|
</a-layout-content>
|
|
</div>
|
|
</template>
|