diff --git a/platform/ui/src/components/ViewportPane/ViewportPane.jsx b/platform/ui/src/components/ViewportPane/ViewportPane.jsx index 3f848126c..aafb82c36 100644 --- a/platform/ui/src/components/ViewportPane/ViewportPane.jsx +++ b/platform/ui/src/components/ViewportPane/ViewportPane.jsx @@ -10,7 +10,10 @@ function ViewportPane({ children, className, isActive, + onClick, onDrop, + onScroll, + onWheel, acceptDropsFor, }) { const [{ isHovered, isHighlighted }, drop] = useDrop({ @@ -34,6 +37,14 @@ function ViewportPane({ return (
{}; + +ViewportPane.defaultProps = { + onClick: noop, + onScroll: noop, + onWheel: noop, +} + export default ViewportPane; diff --git a/platform/viewer/src/App.jsx b/platform/viewer/src/App.jsx index b979193bb..cd29ce3d2 100644 --- a/platform/viewer/src/App.jsx +++ b/platform/viewer/src/App.jsx @@ -54,8 +54,8 @@ function App({ config, defaultExtensions }) { console.log(state, action); switch (action.type) { - case 'DO_TODO': - return state; + case 'SET_ACTIVE_VIEWPORT_INDEX': + return { ...state, ...{ activeViewportIndex: action.payload } }; default: return action.payload; } diff --git a/platform/viewer/src/components/ViewportGrid.jsx b/platform/viewer/src/components/ViewportGrid.jsx index e58bf8bbd..ebc2a0b90 100644 --- a/platform/viewer/src/components/ViewportGrid.jsx +++ b/platform/viewer/src/components/ViewportGrid.jsx @@ -12,6 +12,9 @@ function ViewerViewportGrid(props) { { numCols, numRows, activeViewportIndex, viewports }, dispatch, ] = useViewportGrid(); + const setActiveViewportIndex = index => { + dispatch({ type: 'SET_ACTIVE_VIEWPORT_INDEX', payload: index }); + } // TODO -> Need some way of selecting which displaySets hit the viewports. const { DisplaySetService } = servicesManager.services; @@ -97,6 +100,9 @@ function ViewerViewportGrid(props) { className="m-1" acceptDropsFor="displayset" onDrop={onDropHandler} + onScroll={() => { setActiveViewportIndex(viewportIndex); }} + onClick={() => { setActiveViewportIndex(viewportIndex); }} + onWheel={() => { setActiveViewportIndex(viewportIndex); }} isActive={activeViewportIndex === viewportIndex} >