fix: set SR in ActiveViewport by clicking thumb (#1091)
This commit is contained in:
parent
86c479ac04
commit
986b7ae2bf
@ -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);
|
||||||
|
|||||||
@ -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));
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@ -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>
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user