Ver Fonte

fix: proxy app context

alvarosabu há 1 ano atrás
pai
commit
128e3a5eb7
1 ficheiros alterados com 6 adições e 0 exclusões
  1. 6 0
      src/components/TresCanvas.vue

+ 6 - 0
src/components/TresCanvas.vue

@@ -31,6 +31,8 @@ import { render } from '../core/renderer'
 
 
 import type { RendererPresetsType } from '../composables/useRenderer/const'
 import type { RendererPresetsType } from '../composables/useRenderer/const'
 import type { TresCamera, TresObject } from '../types/'
 import type { TresCamera, TresObject } from '../types/'
+import { getCurrentInstance } from 'vue'
+import { App } from 'vue'
 
 
 export interface TresCanvasProps
 export interface TresCanvasProps
   extends Omit<WebGLRendererParameters, 'canvas'> {
   extends Omit<WebGLRendererParameters, 'canvas'> {
@@ -81,9 +83,13 @@ const slots = defineSlots<{
   default(): any
   default(): any
 }>()
 }>()
 
 
+const vueApp =  getCurrentInstance()?.appContext.app
+
 const createInternalComponent = (context: TresContext) =>
 const createInternalComponent = (context: TresContext) =>
   defineComponent({
   defineComponent({
     setup() {
     setup() {
+      const ctx = getCurrentInstance()?.appContext
+      if(ctx) ctx.app = vueApp as App
       provide('useTres', context)
       provide('useTres', context)
       provide('extend', extend)
       provide('extend', extend)
       return () => h(Fragment, null, slots?.default ? slots.default() : [])
       return () => h(Fragment, null, slots?.default ? slots.default() : [])