2019-09-06 18:03:09 +02:00
|
|
|
import React, { useState, useEffect } from 'react'
|
|
|
|
import PropTypes from 'prop-types'
|
|
|
|
import Radio from '@material-ui/core/Radio'
|
|
|
|
import RadioGroup from '@material-ui/core/RadioGroup'
|
|
|
|
import FormControlLabel from '@material-ui/core/FormControlLabel'
|
2019-04-21 15:31:08 +02:00
|
|
|
|
|
|
|
const Bool = props => {
|
2019-09-06 18:03:09 +02:00
|
|
|
const [value, setValue] = useState(props.dflt)
|
|
|
|
useEffect(() => {
|
|
|
|
if (props.value !== value) setValue(props.value)
|
|
|
|
}, [props.value])
|
2019-04-21 15:31:08 +02:00
|
|
|
const toggle = () => {
|
2019-09-06 18:03:09 +02:00
|
|
|
props.updateValue(props.name, !value)
|
|
|
|
setValue(!value)
|
|
|
|
}
|
2019-04-22 18:00:26 +02:00
|
|
|
|
2019-04-21 15:31:08 +02:00
|
|
|
return (
|
|
|
|
<RadioGroup onChange={toggle} value={JSON.stringify(value)}>
|
|
|
|
<FormControlLabel
|
|
|
|
control={<Radio color="primary" />}
|
|
|
|
value="false"
|
2019-09-06 18:03:09 +02:00
|
|
|
checked={value === 'false' || value === false ? true : false}
|
2019-04-21 15:31:08 +02:00
|
|
|
label={props.labels[0]}
|
2019-04-22 18:00:26 +02:00
|
|
|
className="po-list-item"
|
2019-04-21 15:31:08 +02:00
|
|
|
/>
|
|
|
|
<FormControlLabel
|
|
|
|
control={<Radio color="primary" />}
|
|
|
|
value="true"
|
2019-09-06 18:03:09 +02:00
|
|
|
checked={value === 'true' || value === true ? true : false}
|
2019-04-21 15:31:08 +02:00
|
|
|
label={props.labels[1]}
|
2019-04-22 18:00:26 +02:00
|
|
|
className="po-list-item"
|
2019-04-21 15:31:08 +02:00
|
|
|
/>
|
|
|
|
</RadioGroup>
|
2019-09-06 18:03:09 +02:00
|
|
|
)
|
|
|
|
}
|
2019-04-21 15:31:08 +02:00
|
|
|
|
|
|
|
Bool.propTypes = {
|
|
|
|
dflt: PropTypes.bool,
|
2019-05-01 10:43:39 +02:00
|
|
|
labels: PropTypes.array,
|
2019-04-22 18:00:26 +02:00
|
|
|
updateValue: PropTypes.func.isRequired,
|
2019-04-21 15:31:08 +02:00
|
|
|
name: PropTypes.string.isRequired
|
2019-09-06 18:03:09 +02:00
|
|
|
}
|
2019-04-21 15:31:08 +02:00
|
|
|
|
|
|
|
Bool.defaultProps = {
|
|
|
|
dflt: false,
|
2019-09-06 18:03:09 +02:00
|
|
|
labels: ['false', 'true']
|
|
|
|
}
|
2019-04-21 15:31:08 +02:00
|
|
|
|
2019-09-06 18:03:09 +02:00
|
|
|
export default Bool
|