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}
>