42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
import { connect } from 'react-redux';
|
|
import { LayoutButton } from 'react-viewerbase';
|
|
import OHIF from 'ohif-core'
|
|
|
|
const { setLayout } = OHIF.redux.actions;
|
|
|
|
const mapStateToProps = state => {
|
|
return {
|
|
currentLayout: state.viewports.layout,
|
|
};
|
|
};
|
|
|
|
const mapDispatchToProps = dispatch => {
|
|
return {
|
|
// TODO: Change if layout switched becomes more complex
|
|
onChange: selectedCell => {
|
|
let viewports = [];
|
|
const rows = selectedCell.row + 1;
|
|
const columns = selectedCell.col + 1;
|
|
const numViewports = rows * columns;
|
|
for (let i = 0; i < numViewports; i++) {
|
|
viewports.push({
|
|
height: `${100 / rows}%`,
|
|
width: `${100 / columns}%`
|
|
});
|
|
}
|
|
const layout = {
|
|
viewports
|
|
};
|
|
|
|
dispatch(setLayout(layout))
|
|
}
|
|
};
|
|
};
|
|
|
|
const ConnectedLayoutButton = connect(
|
|
mapStateToProps,
|
|
mapDispatchToProps
|
|
)(LayoutButton);
|
|
|
|
export default ConnectedLayoutButton;
|