diff --git a/src/types/injectKey.ts b/src/types/injectKey.ts new file mode 100644 index 00000000..9207e1c4 --- /dev/null +++ b/src/types/injectKey.ts @@ -0,0 +1,7 @@ +import { InjectionKey, Ref } from 'vue' + +export type SlideScale = Ref +export type SlideId = Ref + +export const injectKeySlideScale: InjectionKey = Symbol() +export const injectKeySlideId: InjectionKey = Symbol() \ No newline at end of file diff --git a/src/views/Editor/Canvas/index.vue b/src/views/Editor/Canvas/index.vue index e464bf2e..4b4229f6 100644 --- a/src/views/Editor/Canvas/index.vue +++ b/src/views/Editor/Canvas/index.vue @@ -94,6 +94,7 @@ import { useMainStore, useSlidesStore, useKeyboardStore } from '@/store' import { ContextmenuItem } from '@/components/Contextmenu/types' import { PPTElement } from '@/types/slides' import { AlignmentLineProps } from '@/types/edit' +import { injectKeySlideScale } from '@/types/injectKey' import { removeAllRanges } from '@/utils/selection' import { KEYS } from '@/configs/hotkey' @@ -255,7 +256,7 @@ export default defineComponent({ ] } - provide('slideScale', canvasScale) + provide(injectKeySlideScale, canvasScale) return { elementList, diff --git a/src/views/Screen/ScreenSlide.vue b/src/views/Screen/ScreenSlide.vue index 6a6fdcdd..ab1e7e6c 100644 --- a/src/views/Screen/ScreenSlide.vue +++ b/src/views/Screen/ScreenSlide.vue @@ -25,6 +25,7 @@ import { computed, PropType, defineComponent, provide } from 'vue' import { storeToRefs } from 'pinia' import { useSlidesStore } from '@/store' import { Slide } from '@/types/slides' +import { injectKeySlideId } from '@/types/injectKey' import { VIEWPORT_SIZE } from '@/configs/canvas' import useSlideBackgroundStyle from '@/hooks/useSlideBackgroundStyle' @@ -64,7 +65,7 @@ export default defineComponent({ const { backgroundStyle } = useSlideBackgroundStyle(background) const slideId = computed(() => props.slide.id) - provide('slideId', slideId) + provide(injectKeySlideId, slideId) return { backgroundStyle, diff --git a/src/views/Screen/ScreenSlideList.vue b/src/views/Screen/ScreenSlideList.vue index c29b1914..9ac77c01 100644 --- a/src/views/Screen/ScreenSlideList.vue +++ b/src/views/Screen/ScreenSlideList.vue @@ -38,6 +38,7 @@ import { computed, defineComponent, PropType, provide } from 'vue' import { storeToRefs } from 'pinia' import { useSlidesStore } from '@/store' +import { injectKeySlideScale } from '@/types/injectKey' import { VIEWPORT_SIZE } from '@/configs/canvas' import ScreenSlide from './ScreenSlide.vue' @@ -73,7 +74,7 @@ export default defineComponent({ const { slides, slideIndex, currentSlide } = storeToRefs(useSlidesStore()) const scale = computed(() => props.slideWidth / VIEWPORT_SIZE) - provide('slideScale', scale) + provide(injectKeySlideScale, scale) return { slides, diff --git a/src/views/components/ThumbnailSlide/index.vue b/src/views/components/ThumbnailSlide/index.vue index 58508cef..78868f67 100644 --- a/src/views/components/ThumbnailSlide/index.vue +++ b/src/views/components/ThumbnailSlide/index.vue @@ -31,6 +31,7 @@ import { computed, PropType, defineComponent, provide } from 'vue' import { storeToRefs } from 'pinia' import { useSlidesStore } from '@/store' import { Slide } from '@/types/slides' +import { injectKeySlideScale } from '@/types/injectKey' import { VIEWPORT_SIZE } from '@/configs/canvas' import useSlideBackgroundStyle from '@/hooks/useSlideBackgroundStyle' @@ -62,7 +63,7 @@ export default defineComponent({ const { backgroundStyle } = useSlideBackgroundStyle(background) const scale = computed(() => props.size / VIEWPORT_SIZE) - provide('slideScale', scale) + provide(injectKeySlideScale, scale) return { scale, diff --git a/src/views/components/element/AudioElement/ScreenAudioElement.vue b/src/views/components/element/AudioElement/ScreenAudioElement.vue index e94c76b6..6f72c318 100644 --- a/src/views/components/element/AudioElement/ScreenAudioElement.vue +++ b/src/views/components/element/AudioElement/ScreenAudioElement.vue @@ -36,10 +36,11 @@