From 2406dcbaae565db7d49995dabdb4bd09fb19fe4d Mon Sep 17 00:00:00 2001
From: Jack Reed <phillipjreed@gmail.com>
Date: Mon, 27 Apr 2020 12:17:53 -0600
Subject: [PATCH] Guard against a contentResource not being defined

---
 __tests__/src/components/OpenSeadragonViewer.test.js | 11 ++++-------
 src/components/OpenSeadragonViewer.js                |  1 +
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/__tests__/src/components/OpenSeadragonViewer.test.js b/__tests__/src/components/OpenSeadragonViewer.test.js
index f0c303113..1c8f04186 100644
--- a/__tests__/src/components/OpenSeadragonViewer.test.js
+++ b/__tests__/src/components/OpenSeadragonViewer.test.js
@@ -201,15 +201,12 @@ describe('OpenSeadragonViewer', () => {
 
       wrapper.instance().refreshTileProperties();
 
-      expect(setOpacity).toHaveBeenCalledTimes(2);
+      expect(setOpacity).toHaveBeenCalledTimes(1);
       expect(setOpacity.mock.calls[0]).toEqual([0.5]);
-      expect(setOpacity.mock.calls[1]).toEqual([0.5]);
 
-      expect(setItemIndex).toHaveBeenCalledTimes(2);
-      expect(setItemIndex.mock.calls[0][0].source.id).toEqual(0);
-      expect(setItemIndex.mock.calls[0][1]).toEqual(1);
-      expect(setItemIndex.mock.calls[1][0].source.id).toEqual(1);
-      expect(setItemIndex.mock.calls[1][1]).toEqual(0);
+      expect(setItemIndex).toHaveBeenCalledTimes(1);
+      expect(setItemIndex.mock.calls[0][0].source.id).toEqual(1);
+      expect(setItemIndex.mock.calls[0][1]).toEqual(0);
     });
   });
 
diff --git a/src/components/OpenSeadragonViewer.js b/src/components/OpenSeadragonViewer.js
index 3ab53dbbf..eb1050a1a 100644
--- a/src/components/OpenSeadragonViewer.js
+++ b/src/components/OpenSeadragonViewer.js
@@ -275,6 +275,7 @@ export class OpenSeadragonViewer extends Component {
 
     items.forEach((item, i) => {
       const contentResource = canvasWorld.contentResource(item.source['@id'] || item.source.id);
+      if (!contentResource) return;
       const newIndex = canvasWorld.layerIndexOfImageResource(contentResource);
       if (i !== newIndex) world.setItemIndex(item, newIndex);
       item.setOpacity(canvasWorld.layerOpacityOfImageResource(contentResource));
-- 
GitLab