import React, { Component, PureComponent } from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; export default class Radio extends PureComponent { static propTypes = { checked: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]), value: PropTypes.any, disabled: PropTypes.bool, readOnly: PropTypes.bool, // will be rewritten by RadioGroup onChange: PropTypes.func, className: PropTypes.string, style: PropTypes.object, prefix: PropTypes.string, }; static defaultProps = { prefix: 'boldrui', className: '', style: {}, onChange() {}, }; handleChange = evt => { const props = this.props; props.onChange({ target: { ...props, type: 'radio', checked: evt.target.checked, }, preventDefault() { evt.preventDefault(); }, stopPropagation() { evt.stopPropagation(); }, }); }; render() { const { checked, // onChange, className, style, prefix, disabled, readOnly, children, value, // eslint-disable-line ...others } = this.props; const classString = classNames({ [className]: !!className, [`${prefix}-radio__wrap`]: true, [`${prefix}-radio__checked`]: !!checked, [`${prefix}-radio__disabled`]: disabled || readOnly, }); return ( ); } }