mirador
Version:
An open-source, web-based 'multi-up' viewer that supports zoom-pan-rotate functionality, ability to display/compare simple images, and images with annotations.
70 lines (63 loc) • 2 kB
JavaScript
import { compose } from 'redux';
import { connect } from 'react-redux';
import { withTranslation } from 'react-i18next';
import { withStyles } from '@material-ui/core/styles';
import { withPlugins } from '../extend/withPlugins';
import * as actions from '../state/actions';
import { getCurrentCanvas } from '../state/selectors';
import { ThumbnailCanvasGrouping } from '../components/ThumbnailCanvasGrouping';
/**
* mapDispatchToProps - used to hook up connect to action creators
* @memberof ThumbnailCanvasGrouping
* @private
*/
var mapDispatchToProps = function mapDispatchToProps(dispatch, _ref) {
var data = _ref.data;
return {
setCanvas: function setCanvas() {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return dispatch(actions.setCanvas.apply(actions, [data.windowId].concat(args)));
}
};
};
/**
* mapStateToProps - used to hook up state to props
* @memberof ThumbnailCanvasGrouping
* @private
*/
var mapStateToProps = function mapStateToProps(state, _ref2) {
var data = _ref2.data;
return {
currentCanvasId: (getCurrentCanvas(state, {
windowId: data.windowId
}) || {}).id
};
};
/**
* Styles for withStyles HOC
*/
var styles = function styles(theme) {
return {
canvas: {
'&$currentCanvas': {
outline: "2px solid ".concat(theme.palette.primary.main),
outlineOffset: '3px'
},
'&:hover': {
outline: "9px solid ".concat(theme.palette.action.hover),
outlineOffset: '-2px'
},
boxSizing: 'border-box',
color: theme.palette.common.white,
cursor: 'pointer',
display: 'inline-block',
outline: 0,
whiteSpace: 'nowrap'
},
currentCanvas: {}
};
};
var enhance = compose(withTranslation(), withStyles(styles), connect(mapStateToProps, mapDispatchToProps), withPlugins('ThumbnailCanvasGrouping'));
export default enhance(ThumbnailCanvasGrouping);