From 0e824ae5a7b47ef465a68532b2784709d63f8434 Mon Sep 17 00:00:00 2001 From: Jack Reed <phillipjreed@gmail.com> Date: Thu, 30 Apr 2020 15:17:20 -0600 Subject: [PATCH] Setup the OpenSeadragonViewer to only zoomToBounds when canvasIds change or there is no viewer information from state --- src/components/OpenSeadragonViewer.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/OpenSeadragonViewer.js b/src/components/OpenSeadragonViewer.js index eb1050a1a..0d7037322 100644 --- a/src/components/OpenSeadragonViewer.js +++ b/src/components/OpenSeadragonViewer.js @@ -84,7 +84,7 @@ export class OpenSeadragonViewer extends Component { this.viewer.viewport.panTo(viewer, true); this.viewer.viewport.zoomTo(viewer.zoom, viewer, true); } - this.addAllImageSources(); + this.addAllImageSources(!(viewer)); } /** @@ -128,7 +128,8 @@ export class OpenSeadragonViewer extends Component { || !this.nonTiledImagedMatch(prevProps.nonTiledImages) ) { this.viewer.close(); - this.addAllImageSources(); + const canvasesChanged = !(isEqual(canvasWorld.canvasIds, prevProps.canvasWorld.canvasIds)); + this.addAllImageSources((canvasesChanged || !viewer)); } else if (!isEqual(canvasWorld.layers, prevProps.canvasWorld.layers)) { this.refreshTileProperties(); } else if (viewer && !this.osdUpdating) { @@ -203,14 +204,14 @@ export class OpenSeadragonViewer extends Component { } /** */ - addAllImageSources() { + addAllImageSources(zoomAfterAdd = true) { const { nonTiledImages, infoResponses } = this.props; Promise.all( infoResponses.map(infoResponse => this.addTileSource(infoResponse)), nonTiledImages.map(image => this.addNonTiledImage(image)), ).then(() => { if (infoResponses[0] || nonTiledImages[0]) { - this.zoomToWorld(); + if (zoomAfterAdd) this.zoomToWorld(); this.refreshTileProperties(); } }); -- GitLab