62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
import { connect } from 'react-redux';
|
|
import { VTKMPRViewport } from 'react-vtkjs-viewport';
|
|
import OHIF from 'ohif-core';
|
|
|
|
const {
|
|
setViewportActive,
|
|
setViewportSpecificData,
|
|
clearViewportSpecificData
|
|
} = OHIF.redux.actions;
|
|
|
|
const mapStateToProps = (state, ownProps) => {
|
|
const activeButton = state.tools.buttons.find(tool => tool.active === true);
|
|
let dataFromStore;
|
|
|
|
if (state.extensions && state.extensions.vtk) {
|
|
dataFromStore = state.extensions.vtk;
|
|
}
|
|
|
|
// If this is the active viewport, enable prefetching.
|
|
const { viewportIndex } = ownProps; //.viewportData;
|
|
const isActive = viewportIndex === state.viewports.activeViewportIndex;
|
|
const viewportSpecificData =
|
|
state.viewports.viewportSpecificData[viewportIndex] || {};
|
|
|
|
const viewportLayout = state.viewports.layout.viewports[viewportIndex];
|
|
const pluginDetails = viewportLayout.vtk || {};
|
|
|
|
return {
|
|
layout: state.viewports.layout,
|
|
isActive,
|
|
...pluginDetails,
|
|
activeTool: activeButton && activeButton.command,
|
|
...dataFromStore,
|
|
enableStackPrefetch: isActive,
|
|
};
|
|
};
|
|
|
|
const mapDispatchToProps = (dispatch, ownProps) => {
|
|
const { viewportIndex } = ownProps;
|
|
|
|
return {
|
|
setViewportActive: () => {
|
|
dispatch(setViewportActive(viewportIndex));
|
|
},
|
|
|
|
setViewportSpecificData: data => {
|
|
dispatch(setViewportSpecificData(viewportIndex, data));
|
|
},
|
|
|
|
clearViewportSpecificData: () => {
|
|
dispatch(clearViewportSpecificData(viewportIndex));
|
|
}
|
|
};
|
|
};
|
|
|
|
const ConnectedVTKViewport = connect(
|
|
mapStateToProps,
|
|
//mapDispatchToProps
|
|
)(VTKMPRViewport);
|
|
|
|
export default ConnectedVTKViewport;
|