diff --git a/platform/viewer/src/connectedComponents/ConnectedLayoutButton.js b/platform/viewer/src/connectedComponents/ConnectedLayoutButton.js index 31c4806b6..db317bec6 100644 --- a/platform/viewer/src/connectedComponents/ConnectedLayoutButton.js +++ b/platform/viewer/src/connectedComponents/ConnectedLayoutButton.js @@ -13,15 +13,23 @@ const mapStateToProps = state => { const mapDispatchToProps = dispatch => { return { // TODO: Change if layout switched becomes more complex - onChange: selectedCell => { + onChange: (selectedCell, currentLayout) => { let viewports = []; const rows = selectedCell.row + 1; const columns = selectedCell.col + 1; const numViewports = rows * columns; for (let i = 0; i < numViewports; i++) { + // Hacky way to allow users to exit MPR "mode" + const viewport = currentLayout.viewports[i]; + let plugin = viewport && viewport.plugin; + if (viewport && viewport.vtk) { + plugin = 'cornerstone'; + } + viewports.push({ height: `${100 / rows}%`, width: `${100 / columns}%`, + plugin, }); } const layout = { @@ -33,9 +41,19 @@ const mapDispatchToProps = dispatch => { }; }; +const mergeProps = (propsFromState, propsFromDispatch) => { + const onChangeFromDispatch = propsFromDispatch.onChange; + const { currentLayout } = propsFromState; + + return { + onChange: (selectedCell) => onChangeFromDispatch(selectedCell, currentLayout) + }; +} + const ConnectedLayoutButton = connect( mapStateToProps, - mapDispatchToProps + mapDispatchToProps, + mergeProps )(LayoutButton); export default ConnectedLayoutButton;