diff --git a/packages/frontend/src/components/Renderer.vue b/packages/frontend/src/components/Renderer.vue index 856618d0f..0b51b0532 100644 --- a/packages/frontend/src/components/Renderer.vue +++ b/packages/frontend/src/components/Renderer.vue @@ -328,6 +328,7 @@ export default { // - juggle the container div out of this component's dom when the component is managed out by vue // - juggle the container div back in of this component's dom when it's back. let renderDomElement = document.getElementById('renderer') + this.hasLoadedModel = false if (!renderDomElement) { renderDomElement = document.createElement('div') @@ -342,26 +343,23 @@ export default { window.__viewer = new Viewer({ container: renderDomElement, showStats: false }) } - window.__viewer.onWindowResize() window.__viewer.onWindowResize() window.__viewer.cameraHandler.onWindowResize() if (window.__viewerLastLoadedUrl !== this.objectUrl) { - window.__viewerLastLoadedUrl = null await this.getPreviewImage() - await window.__viewer.unloadAll() + if (window.__viewerLastLoadedUrl && !this.hasLoadedModel) { + // console.log('unloading') + await window.__viewer.unloadAll() + } + window.__viewerLastLoadedUrl = null } else { this.hasLoadedModel = true this.loadProgress = 100 this.setupEvents() } - let persp = localStorage.getItem('cameramode') - if (!persp) { - this.perspectiveMode = true - } else { - this.perspectiveMode = persp === 'perspective' - } + if (window.__viewer.cameraHandler.activeCam === 'ortho') this.perspectiveMode = false }, beforeDestroy() { // NOTE: here's where we juggle the container div out, and do cleanup on the @@ -392,7 +390,6 @@ export default { toggleCamera() { window.__viewer.toggleCameraProjection() this.perspectiveMode = !this.perspectiveMode - localStorage.setItem('cameramode', this.perspectiveMode === true ? 'perspective' : 'ortho') }, zoomEx() { window.__viewer.interactions.zoomExtents() diff --git a/packages/preview-service/package.json b/packages/preview-service/package.json index 61a523859..5b0bf6cc4 100644 --- a/packages/preview-service/package.json +++ b/packages/preview-service/package.json @@ -14,8 +14,8 @@ "build-fe": "webpack --env dev --config webpack.config.render_page.js && webpack --env build --config webpack.config.render_page.js" }, "dependencies": { - "@speckle/objectloader": "file:../objectloader", - "@speckle/viewer": "file:../viewer", + "@speckle/objectloader": "^2.2.0", + "@speckle/viewer": "^2.2.0", "cookie-parser": "~1.4.4", "crypto": "^1.0.1", "debug": "~2.6.9", diff --git a/packages/viewer/src/modules/converter/Converter.js b/packages/viewer/src/modules/converter/Converter.js index f7e50aa5d..1c658346c 100644 --- a/packages/viewer/src/modules/converter/Converter.js +++ b/packages/viewer/src/modules/converter/Converter.js @@ -46,7 +46,7 @@ export default class Coverter { await this.asyncPause() // Exit on primitives (string, ints, bools, bigints, etc.) - if ( typeof obj !== 'object' ) return + if ( obj === null || typeof obj !== 'object' ) return if ( obj.referencedId ) obj = await this.resolveReference( obj ) let childrenConversionPromisses = []