/**
* CSS Grid Reference: http://grid.malven.co/
*/
import React, { useState } from 'react';
import PropTypes from 'prop-types';
import { ViewportGrid, ViewportPane } from '@ohif/ui';
// import DefaultViewport from './DefaultViewport.js';
// import EmptyViewport from './EmptyViewport.js';
function ViewerViewportGrid(props) {
const { activeViewportIndex, displaySets, children } = props;
// From ViewportGridService and/or ContextProvider
const [viewportGrid, setViewportGrid] = useState({
numRows: 2,
numCols: 2,
activeViewportIndex: 0,
viewports: [
{
displaySetUid: undefined,
},
{
displaySetUid: undefined,
},
{
displaySetUid: undefined,
},
{
displaySetUid: undefined,
},
],
});
// viewportData --> displaySets
const getViewportPanes = () =>
viewportGrid.viewports.map((viewport, viewportIndex) => {
const someId = viewport.displaySetId;
// const displaySet = displaySets[someId];
// if (!displaySet) {
// // TODO: Empty Viewport
// return null;
// }
// const pluginName =
// !layout.plugin && displaySet && displaySet.plugin
// ? displaySet.plugin
// : layout.plugin;
// const ViewportComponent = _getViewportComponent(
// data, // Why do we pass this as `ViewportData`, when that's not really what it is?
// viewportIndex,
// children,
// pluginName,
// defaultPluginName
// );
return (
{
/* setDisplaySet for Viewport */
}}
isActive={activeViewportIndex === viewportIndex}
>
{/* {ViewportComponent} */}
);
});
const ViewportPanes = React.useMemo(getViewportPanes, [
children,
activeViewportIndex,
]);
return (
{ViewportPanes}
);
}
ViewerViewportGrid.propTypes = {
// viewports: PropTypes.array.isRequired,
activeViewportIndex: PropTypes.number.isRequired,
children: PropTypes.node,
// numRows: PropTypes.number.isRequired,
// numColumns: PropTypes.number.isRequired,
};
ViewerViewportGrid.defaultProps = {
// viewports: [],
// numRows: 1,
// numColumns: 1,
activeViewportIndex: 0,
};
export default ViewerViewportGrid;