set the displaySet for the dropped thumbnail/viewport target

This commit is contained in:
dannyrb 2020-05-25 09:56:05 -04:00
parent ff371ece8d
commit b396cc8d3f
2 changed files with 22 additions and 21 deletions

View File

@ -56,6 +56,13 @@ function App({ config, defaultExtensions }) {
switch (action.type) { switch (action.type) {
case 'SET_ACTIVE_VIEWPORT_INDEX': case 'SET_ACTIVE_VIEWPORT_INDEX':
return { ...state, ...{ activeViewportIndex: action.payload } }; return { ...state, ...{ activeViewportIndex: action.payload } };
case 'SET_DISPLAYSET_FOR_VIEWPORT':
const { viewportIndex, displaySetInstanceUID } = action.payload;
const viewports = state.viewports.slice();
viewports[viewportIndex] = { displaySetInstanceUID };
return { ...state, ...{ viewports } };
default: default:
return action.payload; return action.payload;
} }

View File

@ -62,26 +62,20 @@ function ViewerViewportGrid(props) {
// return unsubscribe; // return unsubscribe;
// }, []); // }, []);
// TODO: either need hover to change "active viewport" // const droppedDisplaySet = DisplaySetService.getDisplaySetByUID(
// so we can use it as our target for setting the displaySet, // displaySetInstanceUID
// or the dropHandler needs to know which viewport was dropped on // );
// in event data // const updatedViewportGridState = HangingProtocolService([
const onDropHandler = ({ displaySetInstanceUID }) => { // droppedDisplaySet,
const droppedDisplaySet = DisplaySetService.getDisplaySetByUID( // ]);
displaySetInstanceUID const onDropHandler = (viewportIndex, { displaySetInstanceUID }) => {
); console.warn(`DROPPED: ${displaySetInstanceUID}`);
const updatedViewportGridState = HangingProtocolService([ dispatch({ type: 'SET_DISPLAYSET_FOR_VIEWPORT', payload:
droppedDisplaySet, {
]); viewportIndex,
displaySetInstanceUID
console.warn( }
'DROPPED: ', });
displaySetInstanceUID,
droppedDisplaySet,
updatedViewportGridState
);
dispatch({ type: 'action-name', payload: updatedViewportGridState });
}; };
const getViewportPanes = () => { const getViewportPanes = () => {
@ -99,7 +93,7 @@ function ViewerViewportGrid(props) {
key={viewportIndex} key={viewportIndex}
className="m-1" className="m-1"
acceptDropsFor="displayset" acceptDropsFor="displayset"
onDrop={onDropHandler} onDrop={onDropHandler.bind(null, viewportIndex)}
onInteraction={() => { setActiveViewportIndex(viewportIndex); }} onInteraction={() => { setActiveViewportIndex(viewportIndex); }}
isActive={activeViewportIndex === viewportIndex} isActive={activeViewportIndex === viewportIndex}
> >