diff --git a/packages/frontend/src/pages/room.add-object-dialog.vue b/packages/frontend/src/pages/room.add-object-dialog.vue index dc006176d8..9df0c6856a 100644 --- a/packages/frontend/src/pages/room.add-object-dialog.vue +++ b/packages/frontend/src/pages/room.add-object-dialog.vue @@ -37,7 +37,7 @@ SPDX-License-Identifier: AGPL-3.0-only :leaveToClass="prefer.s.animation ? $style.transition_preview_leaveTo : ''" :duration="300" > -
+
@@ -92,6 +92,7 @@ const emit = defineEmits<{ const dialog = useTemplateRef('dialog'); const canvas = useTemplateRef('canvas'); const selectedId = ref(null); +const showPreview = ref(false); const selectedInstanceId = ref(null); const selectedObjectOptionsState = ref(null); const selectedObjectDef = computed(() => OBJECT_DEFS.find(def => def.id === selectedId.value) ?? null); @@ -115,6 +116,7 @@ onUnmounted(() => { watch(selectedId, (newId) => { showObjectOptions.value = false; + showPreview.value = false; if (newId == null) { engine.value!.clear(); @@ -127,9 +129,12 @@ watch(selectedId, (newId) => { engine.value!.load(newId).then(res => { selectedInstanceId.value = res.id; selectedObjectOptionsState.value = deepClone(res.options); - engine.value!.resize(); engine.value!.resumeRender(); closeWaiting(); + showPreview.value = true; + nextTick(() => { + engine.value!.resize(); + }); }).catch(err => { console.error(err); closeWaiting();