fix: set SR in ActiveViewport by clicking thumb (#1091)

This commit is contained in:
Rodrigo Antinarelli 2019-10-25 15:22:44 -03:00 committed by Danny Brown
parent 86c479ac04
commit 986b7ae2bf
3 changed files with 23 additions and 11 deletions

View File

@ -34,7 +34,6 @@ const defaultState = {
* @param {Object} [action.viewportSpecificData] * @param {Object} [action.viewportSpecificData]
*/ */
const viewports = (state = defaultState, action) => { const viewports = (state = defaultState, action) => {
let currentData;
let viewportSpecificData; let viewportSpecificData;
let useActiveViewport = false; let useActiveViewport = false;
switch (action.type) { switch (action.type) {
@ -85,14 +84,24 @@ const viewports = (state = defaultState, action) => {
// Allow fall-through // Allow fall-through
// eslint-disable-next-line // eslint-disable-next-line
case SET_SPECIFIC_DATA: { case SET_SPECIFIC_DATA: {
const layout = cloneDeep(state.layout);
const hasPlugin = action.data && action.data.plugin;
const viewportIndex = useActiveViewport const viewportIndex = useActiveViewport
? state.activeViewportIndex ? state.activeViewportIndex
: action.viewportIndex; : action.viewportIndex;
currentData = cloneDeep(state.viewportSpecificData[viewportIndex]) || {}; const { dom } = state.viewportSpecificData[viewportIndex];
viewportSpecificData = cloneDeep(state.viewportSpecificData);
viewportSpecificData[viewportIndex] = merge({}, currentData, action.data);
return Object.assign({}, state, { viewportSpecificData }); viewportSpecificData = cloneDeep(state.viewportSpecificData);
viewportSpecificData[viewportIndex] = {
dom,
...action.data,
};
if (hasPlugin) {
layout.viewports[viewportIndex].plugin = action.data.plugin;
}
return Object.assign({}, state, { layout, viewportSpecificData });
} }
case CLEAR_VIEWPORT: case CLEAR_VIEWPORT:
viewportSpecificData = cloneDeep(state.viewportSpecificData); viewportSpecificData = cloneDeep(state.viewportSpecificData);

View File

@ -35,14 +35,14 @@ const mapStateToProps = (state, ownProps) => {
}; };
}; };
const mapDispatchToProps = dispatch => { const mapDispatchToProps = (dispatch, ownProps) => {
return { return {
onThumbnailClick: displaySetInstanceUid => { onThumbnailClick: displaySetInstanceUid => {
dispatch( const displaySet = ownProps.studyMetadata[0].displaySets.find(
setActiveViewportSpecificData({ ds => ds.displaySetInstanceUid === displaySetInstanceUid
displaySetInstanceUid,
})
); );
dispatch(setActiveViewportSpecificData(displaySet));
}, },
}; };
}; };

View File

@ -295,7 +295,10 @@ class Viewer extends Component {
activeIndex={this.props.activeViewportIndex} activeIndex={this.props.activeViewportIndex}
/> />
) : ( ) : (
<ConnectedStudyBrowser studies={this.state.thumbnails} /> <ConnectedStudyBrowser
studies={this.state.thumbnails}
studyMetadata={this.props.studies}
/>
)} )}
</SidePanel> </SidePanel>