2016-10-13 19:31:29 +02:00
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* LocaleToggle
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
2017-09-20 11:12:04 +02:00
|
|
|
import PropTypes from 'prop-types';
|
2016-10-13 19:31:29 +02:00
|
|
|
|
2017-08-18 14:17:15 +02:00
|
|
|
import ToggleOption from 'components/ToggleOption';
|
|
|
|
|
|
2016-10-13 19:31:29 +02:00
|
|
|
import styles from './styles.scss';
|
|
|
|
|
|
2017-08-18 17:02:33 +02:00
|
|
|
function Toggle(props) { // eslint-disable-line react/prefer-stateless-function
|
2016-10-13 19:31:29 +02:00
|
|
|
let content = (<option>--</option>);
|
|
|
|
|
|
|
|
|
|
// If we have items, render them
|
|
|
|
|
if (props.values) {
|
|
|
|
|
content = props.values.map((value) => (
|
2017-09-09 16:30:19 +02:00
|
|
|
<ToggleOption key={value} value={value} message={props.messages[value]} />
|
2016-10-13 19:31:29 +02:00
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (
|
2017-09-09 16:30:19 +02:00
|
|
|
<select onChange={props.onToggle} className={styles.toggle} defaultValue={props.value}>
|
2016-10-13 19:31:29 +02:00
|
|
|
{content}
|
|
|
|
|
</select>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Toggle.propTypes = {
|
2017-09-20 11:12:04 +02:00
|
|
|
messages: PropTypes.object.isRequired,
|
|
|
|
|
onToggle: PropTypes.func.isRequired,
|
|
|
|
|
value: PropTypes.string.isRequired,
|
|
|
|
|
values: PropTypes.array.isRequired,
|
2016-10-13 19:31:29 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default Toggle;
|