|
1 | 1 | import React from 'react'; |
2 | 2 | import PropTypes from 'prop-types'; |
| 3 | +import classnames from 'classnames'; |
| 4 | + |
| 5 | +import './RadioButton.scss'; |
3 | 6 |
|
4 | 7 | export default function RadioButton(props) { |
| 8 | + const classNames = classnames('RadioButton', { |
| 9 | + 'RadioButton--bordered': props.bordered, |
| 10 | + }); |
| 11 | + |
5 | 12 | return ( |
6 | | - <input |
7 | | - className="RadioButton" |
8 | | - disabled={props.disabled} |
9 | | - id={props.id} |
10 | | - name={props.name} |
11 | | - type="radio" |
12 | | - {...props.radioButtonProps} |
13 | | - /> |
| 13 | + <label className={classNames}> |
| 14 | + <input |
| 15 | + className="RadioButton__input" |
| 16 | + disabled={props.disabled} |
| 17 | + id={props.id} |
| 18 | + name={props.name} |
| 19 | + type="radio" |
| 20 | + {...props.radioButtonProps} |
| 21 | + /> |
| 22 | + |
| 23 | + {props.label && ( |
| 24 | + <span className="RadioButton__label">{props.label}</span> |
| 25 | + )} |
| 26 | + |
| 27 | + {props.children && ( |
| 28 | + <div className="RadioButton__children"> |
| 29 | + {props.children} |
| 30 | + </div> |
| 31 | + )} |
| 32 | + </label> |
14 | 33 | ); |
15 | 34 | } |
16 | 35 |
|
17 | 36 | RadioButton.propTypes = { |
| 37 | + bordered: PropTypes.bool, |
| 38 | + children: PropTypes.node, |
18 | 39 | disabled: PropTypes.bool, |
19 | 40 | id: PropTypes.string.isRequired, |
| 41 | + label: PropTypes.string.isRequired, |
20 | 42 | name: PropTypes.string, |
21 | 43 | radioButtonProps: PropTypes.object, |
22 | 44 | }; |
23 | 45 |
|
24 | 46 | RadioButton.defaultProps = { |
| 47 | + bordered: false, |
| 48 | + children: null, |
25 | 49 | disabled: false, |
26 | 50 | name: '', |
27 | 51 | radioButtonProps: {}, |
|
0 commit comments