rc-adminlte
Version:
AdminLTE template ported to React
40 lines (34 loc) • 921 B
JSX
import React from 'react';
import PropTypes from 'prop-types';
import uuidv4 from 'uuid';
import InputWrapper from './InputWrapper';
const Radio = ({
options, name, onChange, ...props
}) => (
<InputWrapper {...{ name, ...props }}>
{options && options.map(p => (
<div className="radio" key={uuidv4()}>
<label htmlFor={name}>
<input name={name} type="radio" onChange={onChange} {...p} />
{p.label}
</label>
</div>
))}
</InputWrapper>
);
Radio.propTypes = {
options: PropTypes.arrayOf(PropTypes.shape({
id: PropTypes.string,
value: PropTypes.string.isRequired,
checked: PropTypes.bool,
disabled: PropTypes.bool,
label: PropTypes.string,
})).isRequired,
name: PropTypes.string,
onChange: PropTypes.func,
};
Radio.defaultProps = {
name: uuidv4(),
onChange: null,
};
export default Radio;