From 9f74adcb446372d8fc557af597e87f73abc29673 Mon Sep 17 00:00:00 2001 From: Erik Ziegler Date: Mon, 7 Jan 2019 13:11:38 +0100 Subject: [PATCH] Fixes for drag/drop --- OHIFViewer-react/package.json | 2 +- OHIFViewer-react/src/FlexboxLayout/ViewerMain.js | 15 ++++++++------- OHIFViewer-react/src/sha.js | 1 - OHIFViewer-react/src/version.js | 1 - 4 files changed, 9 insertions(+), 10 deletions(-) delete mode 100644 OHIFViewer-react/src/sha.js delete mode 100644 OHIFViewer-react/src/version.js diff --git a/OHIFViewer-react/package.json b/OHIFViewer-react/package.json index 9de61c2d7..9ea624901 100644 --- a/OHIFViewer-react/package.json +++ b/OHIFViewer-react/package.json @@ -23,7 +23,7 @@ "react-router": "^4.3.1", "react-router-dom": "^4.3.1", "react-scripts": "^2.1.1", - "react-viewerbase": "^0.1.8", + "react-viewerbase": "^0.1.9", "redux": "^4.0.1" }, "scripts": { diff --git a/OHIFViewer-react/src/FlexboxLayout/ViewerMain.js b/OHIFViewer-react/src/FlexboxLayout/ViewerMain.js index acddeab6a..370e57336 100644 --- a/OHIFViewer-react/src/FlexboxLayout/ViewerMain.js +++ b/OHIFViewer-react/src/FlexboxLayout/ViewerMain.js @@ -28,10 +28,7 @@ function getCornerstoneStack(studies, viewportData) { }); // Get stack from Stack Manager - const stack = StackManager.findOrCreateStack(study, displaySet); - stack.currentImageIdIndex = 0; - - return stack; + return StackManager.findOrCreateStack(study, displaySet); } class ViewerMain extends Component { @@ -84,7 +81,9 @@ class ViewerMain extends Component { } getCornerstoneViewport(data, index) { - const stack = getCornerstoneStack(this.props.studies, data) + // Clone the stack here so we don't mutate it later + const stack = Object.assign({}, getCornerstoneStack(this.props.studies, data)); + stack.currentImageIdIndex = 0; const viewportData = { stack, ...data, @@ -103,14 +102,16 @@ class ViewerMain extends Component { // TODO: Replace this with mapDispatchToProps call // if we decide to put viewport info into redux - const updatedViewportData = this.state.viewportData; + // Note: Use Slice because React does a shallow equality check. Mutating the array + // would not trigger a re-render. We have to create a copy. + const updatedViewportData = this.state.viewportData.slice(0); const data = { studyInstanceUid: item.studyInstanceUid, displaySetInstanceUid: item.displaySetInstanceUid }; updatedViewportData[viewportIndex] = this.getCornerstoneViewport(data, viewportIndex); - + this.setState({ viewportData: updatedViewportData }); diff --git a/OHIFViewer-react/src/sha.js b/OHIFViewer-react/src/sha.js deleted file mode 100644 index 910a34594..000000000 --- a/OHIFViewer-react/src/sha.js +++ /dev/null @@ -1 +0,0 @@ -export default '2b8dfa4468036e027380513dc6a7c51a70be5752'; diff --git a/OHIFViewer-react/src/version.js b/OHIFViewer-react/src/version.js deleted file mode 100644 index ed02886fe..000000000 --- a/OHIFViewer-react/src/version.js +++ /dev/null @@ -1 +0,0 @@ -export default '0.0.0';