|
<template> |
|
<div class="mobile"> |
|
<component |
|
:is="currentComponent" |
|
:changeMode="changeMode" |
|
></component> |
|
</div> |
|
</template> |
|
|
|
<script lang="ts" setup> |
|
import { computed, ref } from 'vue' |
|
import type { Mode } from '@/types/mobile' |
|
|
|
import MobileEditor from './MobileEditor/index.vue' |
|
import MobilePlayer from './MobilePlayer.vue' |
|
import MobilePreview from './MobilePreview.vue' |
|
|
|
const mode = ref<Mode>('preview') |
|
|
|
const changeMode = (_mode: Mode) => mode.value = _mode |
|
|
|
const currentComponent = computed(() => { |
|
const componentMap = { |
|
'editor': MobileEditor, |
|
'player': MobilePlayer, |
|
'preview': MobilePreview, |
|
} |
|
return componentMap[mode.value] || null |
|
}) |
|
</script> |
|
|
|
<style lang="scss" scoped> |
|
.mobile { |
|
height: 100%; |
|
} |
|
</style> |