Cleanup @ohif/ui ViewportGrid API

This commit is contained in:
dannyrb authored and James A. Petts committed 2020-05-15 14:05:52 +02:00
1 parent 26450644ab
commit f319092b84
2 files changed
+27 -44

No files matched your search

@@ -1,46 +1,33 @@
import React from 'react';
import PropTypes from 'prop-types';
import classnames from 'classnames';
const ViewportGrid = ({ rows, cols, viewportContents }) => {
const ViewportPanes = viewportContents.map((viewportContent, index) => {
const isActive = index === activeViewportIndex;
return (
<div
key={index}
className={classnames(
'rounded-lg hover:border-primary-light transition duration-300 outline-none overflow-hidden',
{
'border-2 border-primary-light -m-px': isActive,
'border border-secondary-light': !isActive,
}
)}
onClick={() => {
setActiveViewportIndex(index);
}}
>
{viewportContent}
</div>
);
});
function ViewportGrid({ numRows, numCols, children }) {
const rowSize = 100 / numRows;
const colSize = 100 / numCols;
return (
<div
className={classnames(
'h-full w-full grid gap-2',
`grid-cols-${cols}`,
`grid-rows-${rows}`
)}
data-cy="viewport-grid"
style={{
display: 'grid',
gridTemplateRows: `repeat(${numRows}, ${rowSize}%)`,
gridTemplateColumns: `repeat(${numCols}, ${colSize}%)`,
height: '100%',
width: '100%',
}}
>
{ViewportPanes}
{children}
</div>
);
};
}
ViewportGrid.propTypes = {
rows: PropTypes.number.isRequired,
cols: PropTypes.number.isRequired,
viewportContents: PropTypes.arrayOf(PropTypes.node),
/** Number of columns */
numRows: PropTypes.number.isRequired,
/** Number of rows */
numCols: PropTypes.number.isRequired,
/** Array of React Components to render within grid */
children: PropTypes.arrayOf(PropTypes.node).isRequired,
};
export default ViewportGrid;