| <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> |