import PropTypes from 'prop-types'; import React from 'react'; import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; import Toggle from 'react-toggle'; export default class SettingToggle extends ImmutablePureComponent { static propTypes = { prefix: PropTypes.string, settings: ImmutablePropTypes.map.isRequired, settingPath: PropTypes.array.isRequired, label: PropTypes.node, onChange: PropTypes.func.isRequired, icons: PropTypes.oneOfType([ PropTypes.bool, PropTypes.object, ]), ariaLabel: PropTypes.string, } onChange = ({ target }) => { this.props.onChange(this.props.settingPath, target.checked); } render() { const { prefix, settings, settingPath, label, icons, ariaLabel } = this.props; const id = ['setting-toggle', prefix, ...settingPath].filter(Boolean).join('-'); return (
{label && ()}
); } }