31 lines
No EOL
723 B
Vue
31 lines
No EOL
723 B
Vue
<script setup lang="ts">
|
|
import {computed, defineAsyncComponent} from 'vue';
|
|
|
|
const props = defineProps({
|
|
page: Object,
|
|
});
|
|
|
|
const currentPage = computed(() => props.page.id)
|
|
|
|
/**
|
|
* ToDo:
|
|
*/
|
|
const tabs = {
|
|
dashboard: defineAsyncComponent(() => import('../../components/content/Dashboard.vue')),
|
|
archive: defineAsyncComponent(() => import('../../components/content/Archive.vue')),
|
|
playlist: defineAsyncComponent(() => import('../../components/content/Playlist.vue')),
|
|
blocks: defineAsyncComponent(() => import('../../components/content/Blocks.vue')),
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<v-col>
|
|
<keep-alive>
|
|
<Component :is="tabs[currentPage]" />
|
|
</keep-alive>
|
|
</v-col>
|
|
</template>
|
|
|
|
<style scoped>
|
|
|
|
</style> |