169 lines
4.5 KiB
JavaScript
169 lines
4.5 KiB
JavaScript
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import { withStyles } from '@material-ui/core/styles';
|
|
import purple from '@material-ui/core/colors/purple';
|
|
import FormGroup from '@material-ui/core/FormGroup';
|
|
import FormControlLabel from '@material-ui/core/FormControlLabel';
|
|
import Switch from '@material-ui/core/Switch';
|
|
|
|
const styles = theme => ({
|
|
colorSwitchBase: {
|
|
color: purple[300],
|
|
'&$colorChecked': {
|
|
color: purple[500],
|
|
'& + $colorBar': {
|
|
backgroundColor: purple[500],
|
|
},
|
|
},
|
|
},
|
|
colorBar: {},
|
|
colorChecked: {},
|
|
iOSSwitchBaseBlue: {
|
|
'&$iOSChecked': {
|
|
color: theme.palette.common.white,
|
|
'& + $iOSBar': {
|
|
backgroundColor: "#2069b3",
|
|
},
|
|
},
|
|
transition: theme.transitions.create('transform', {
|
|
duration: theme.transitions.duration.shortest,
|
|
easing: theme.transitions.easing.sharp,
|
|
}),
|
|
},
|
|
iOSSwitchBaseGreen: {
|
|
'&$iOSChecked': {
|
|
color: theme.palette.common.white,
|
|
'& + $iOSBar': {
|
|
backgroundColor: "#139657",
|
|
},
|
|
},
|
|
transition: theme.transitions.create('transform', {
|
|
duration: theme.transitions.duration.shortest,
|
|
easing: theme.transitions.easing.sharp,
|
|
}),
|
|
},
|
|
iOSSwitchBaseYellow: {
|
|
'&$iOSChecked': {
|
|
color: theme.palette.common.white,
|
|
'& + $iOSBar': {
|
|
backgroundColor: "#fdcf09",
|
|
},
|
|
},
|
|
transition: theme.transitions.create('transform', {
|
|
duration: theme.transitions.duration.shortest,
|
|
easing: theme.transitions.easing.sharp,
|
|
}),
|
|
},
|
|
iOSChecked: {
|
|
transform: 'translateX(15px)',
|
|
'& + $iOSBar': {
|
|
opacity: 1,
|
|
border: 'none',
|
|
},
|
|
},
|
|
iOSBar: {
|
|
borderRadius: 13,
|
|
width: 42,
|
|
height: 26,
|
|
marginTop: -13,
|
|
marginLeft: -21,
|
|
border: 'solid 1px',
|
|
borderColor: theme.palette.grey[400],
|
|
backgroundColor: theme.palette.grey[50],
|
|
opacity: 1,
|
|
transition: theme.transitions.create(['background-color', 'border']),
|
|
},
|
|
iOSIcon: {
|
|
width: 24,
|
|
height: 24,
|
|
},
|
|
iOSIconChecked: {
|
|
boxShadow: theme.shadows[1],
|
|
},
|
|
});
|
|
|
|
/**
|
|
* The control of the map layers.
|
|
*/
|
|
class LayerMapSwitches extends React.Component {
|
|
|
|
render() {
|
|
const { classes } = this.props;
|
|
|
|
return (
|
|
<FormGroup row>
|
|
<div style={{ textAlign: 'center', marginLeft: 'auto', marginRight: 'auto'}}>
|
|
<FormControlLabel
|
|
control={
|
|
<Switch
|
|
checked={this.props.ambassadors}
|
|
onChange={this.props.onChange('ambassadorLayer')}
|
|
value="ambassadors"
|
|
classes={{
|
|
switchBase: classes.iOSSwitchBaseBlue,
|
|
bar: classes.iOSBar,
|
|
icon: classes.iOSIcon,
|
|
iconChecked: classes.iOSIconChecked,
|
|
checked: classes.iOSChecked,
|
|
}}
|
|
/>
|
|
}
|
|
label="Ambassadors"
|
|
/>
|
|
<FormControlLabel
|
|
control={
|
|
<Switch
|
|
classes={{
|
|
switchBase: classes.iOSSwitchBaseGreen,
|
|
bar: classes.iOSBar,
|
|
icon: classes.iOSIcon,
|
|
iconChecked: classes.iOSIconChecked,
|
|
checked: classes.iOSChecked,
|
|
}}
|
|
disableRipple
|
|
checked={this.props.merchants}
|
|
onChange={this.props.onChange('merchantLayer')}
|
|
value="merchants"
|
|
/>
|
|
}
|
|
label="Merchants"
|
|
/>
|
|
<FormControlLabel
|
|
control={
|
|
<Switch
|
|
classes={{
|
|
switchBase: classes.iOSSwitchBaseYellow,
|
|
bar: classes.iOSBar,
|
|
icon: classes.iOSIcon,
|
|
iconChecked: classes.iOSIconChecked,
|
|
checked: classes.iOSChecked,
|
|
}}
|
|
disableRipple
|
|
checked={this.props.tellers}
|
|
onChange={this.props.onChange('tellerLayer')}
|
|
value="tellers"
|
|
/>
|
|
}
|
|
label="Tellers"
|
|
/>
|
|
</div>
|
|
</FormGroup>
|
|
);
|
|
}
|
|
}
|
|
|
|
LayerMapSwitches.propTypes = {
|
|
classes: PropTypes.object.isRequired,
|
|
ambassadors: PropTypes.bool,
|
|
merchants: PropTypes.bool,
|
|
tellers: PropTypes.bool,
|
|
onChange: PropTypes.func.isRequired,
|
|
};
|
|
|
|
LayerMapSwitches.defaultProps = {
|
|
ambassadors: true,
|
|
merchants: true,
|
|
tellers: true
|
|
};
|
|
|
|
export default withStyles(styles)(LayerMapSwitches);
|