Pārlūkot izejas kodu

feature: made isReady dependency clearer by leveraging triggerRef

Tino Koch 3 nedēļas atpakaļ
vecāks
revīzija
a1060f73a1
1 mainītis faili ar 5 papildinājumiem un 5 dzēšanām
  1. 5 5
      src/composables/useRenderer/useRendererManager.ts

+ 5 - 5
src/composables/useRenderer/useRendererManager.ts

@@ -11,7 +11,7 @@ import {
   useDevicePixelRatio,
   useDevicePixelRatio,
 } from '@vueuse/core'
 } from '@vueuse/core'
 import { ACESFilmicToneMapping, Color, WebGLRenderer } from 'three'
 import { ACESFilmicToneMapping, Color, WebGLRenderer } from 'three'
-import { computed, type MaybeRef, onUnmounted, readonly, ref, shallowRef, toValue, watch, watchEffect } from 'vue'
+import { computed, type MaybeRef, onUnmounted, readonly, ref, shallowRef, toValue, triggerRef, watch, watchEffect } from 'vue'
 
 
 // Solution taken from Thretle that actually support different versions https://github.com/threlte/threlte/blob/5fa541179460f0dadc7dc17ae5e6854d1689379e/packages/core/src/lib/lib/useRenderer.ts
 // Solution taken from Thretle that actually support different versions https://github.com/threlte/threlte/blob/5fa541179460f0dadc7dc17ae5e6854d1689379e/packages/core/src/lib/lib/useRenderer.ts
 import { revision } from '../../core/revision'
 import { revision } from '../../core/revision'
@@ -196,15 +196,15 @@ export function useRendererManager(
     invalidateOnDemand()
     invalidateOnDemand()
   })
   })
 
 
-  const isReady = ref(false)
+  const isReady = computed(() =>
+    !!(instance.value.domElement.width && instance.value.domElement.height),
+  )
 
 
   watch([sizes.width, sizes.height], () => {
   watch([sizes.width, sizes.height], () => {
     instance.value.setSize(sizes.width.value, sizes.height.value)
     instance.value.setSize(sizes.width.value, sizes.height.value)
     invalidateOnDemand()
     invalidateOnDemand()
 
 
-    if (!isReady.value && sizes.width.value && sizes.height.value) {
-      isReady.value = true
-    }
+    triggerRef(instance)
   }, {
   }, {
     immediate: true,
     immediate: true,
   })
   })