返回 slidev
Controls.vue
根目录 / packages / client / internals / Controls.vue
1 <script setup lang="ts">
2 import { shallowRef } from 'vue'
3 import { useNav } from '../composables/useNav'
4 import { configs } from '../env'
5 import { showInfoDialog, showRecordingDialog } from '../state'
6 import ContextMenu from './ContextMenu.vue'
7 import Goto from './Goto.vue'
8 import InfoDialog from './InfoDialog.vue'
9 import QuickOverview from './QuickOverview.vue'
10
11 const { isEmbedded } = useNav()
12 const drawingEnabled = __SLIDEV_FEATURE_DRAWINGS__ && !configs.drawings.presenterOnly && !isEmbedded.value
13 const DrawingControls = shallowRef<any>()
14 if (drawingEnabled)
15 import('../internals/DrawingControls.vue').then(v => DrawingControls.value = v.default)
16
17 const WebCamera = shallowRef<any>()
18 const RecordingDialog = shallowRef<any>()
19 if (__SLIDEV_FEATURE_RECORD__) {
20 import('./WebCamera.vue').then(v => WebCamera.value = v.default)
21 import('./RecordingDialog.vue').then(v => RecordingDialog.value = v.default)
22 }
23 </script>
24
25 <template>
26 <DrawingControls v-if="DrawingControls" />
27 <QuickOverview />
28 <Goto />
29 <WebCamera v-if="WebCamera" />
30 <RecordingDialog v-if="RecordingDialog" v-model="showRecordingDialog" />
31 <InfoDialog v-if="configs.info" v-model="showInfoDialog" />
32 <ContextMenu />
33 </template>
34
34 lines Plain Text