返回 slidev
PrintSlide.vue
根目录 / packages / client / internals / PrintSlide.vue
1 <script setup lang="ts">
2 import type { SlideRoute } from '@slidev/types'
3 import { createFixedClicks } from '../composables/useClicks'
4 import { useFixedNav, useNav } from '../composables/useNav'
5 import { CLICKS_MAX } from '../constants'
6 import PrintSlideClick from './PrintSlideClick.vue'
7
8 const { route } = defineProps<{ hidden?: boolean, route: SlideRoute }>()
9 const { isPrintWithClicks } = useNav()
10 const clicks0 = createFixedClicks(route, () => isPrintWithClicks.value ? 0 : CLICKS_MAX)
11 </script>
12
13 <template>
14 <PrintSlideClick
15 v-show="!hidden"
16 :nav="useFixedNav(route, clicks0)"
17 />
18 <template v-if="isPrintWithClicks">
19 <!--
20 clicks0.total can be any number >=0 when rendering.
21 So total-clicksStart can be negative in intermediate states.
22 -->
23 <PrintSlideClick
24 v-for="i in Math.max(0, clicks0.total - clicks0.clicksStart)"
25 v-show="!hidden"
26 :key="i"
27 :nav="useFixedNav(route, createFixedClicks(route, i + clicks0.clicksStart))"
28 />
29 </template>
30 </template>
31
31 lines Plain Text