terriajs
Version:
Geospatial data visualization platform.
52 lines (41 loc) • 1.98 kB
JSX
;
import classNames from 'classnames';
import createReactClass from 'create-react-class';
import PropTypes from 'prop-types';
import React from 'react';
import defined from 'terriajs-cesium/Source/Core/defined';
import ImagerySplitDirection from 'terriajs-cesium/Source/Scene/ImagerySplitDirection';
// import Icon from '../../Icon';
import ObserveModelMixin from '../../ObserveModelMixin';
import Styles from './left-right-section.scss';
const LeftRightSection = createReactClass({
displayName: 'LeftRightSection',
mixins: [ObserveModelMixin],
propTypes: {
item: PropTypes.object.isRequired
},
goLeft() {
this.props.item.splitDirection = ImagerySplitDirection.LEFT;
},
goBoth() {
this.props.item.splitDirection = ImagerySplitDirection.NONE;
},
goRight() {
this.props.item.splitDirection = ImagerySplitDirection.RIGHT;
},
render() {
const item = this.props.item;
const splitDirection = item.splitDirection;
if (!item.supportsSplitting || !defined(splitDirection) || !item.terria.showSplitter) {
return null;
}
return (
<div className={Styles.leftRightSection}>
<button type='button' onClick={this.goLeft} className={classNames(Styles.goLeft, {[Styles.isActive]: splitDirection === ImagerySplitDirection.LEFT})} title='Show on the left side'>Left</button>
<button type='button' onClick={this.goBoth} className={classNames(Styles.goBoth, {[Styles.isActive]: splitDirection === ImagerySplitDirection.NONE})} title='Show on both sides'>Both</button>
<button type='button' onClick={this.goRight} className={classNames(Styles.goRight, {[Styles.isActive]: splitDirection === ImagerySplitDirection.RIGHT})} title='Show on the right side'>Right</button>
</div>
);
}
});
module.exports = LeftRightSection;