palmpay.io-website/src/components/LayerMapSwitches.js
2018-12-03 13:26:15 -02:00

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);