@nomios/web-uikit
Version:
Nomios' living web UIKit
39 lines (32 loc) • 1.17 kB
JavaScript
import _omit from "lodash/omit";
import _pick from "lodash/pick";
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import styles from './Radio.css';
const INPUT_PROPS = ['id', 'name', 'autofocus', 'checked', 'defaultChecked', 'defaultValue', 'disabled', 'form', 'required', 'type', 'value', 'onChange'];
const Input = props => React.createElement("input", Object.assign({
type: "radio"
}, props));
const Radio = ({
label,
className,
...rest
}) => {
const rootProps = _omit(rest, INPUT_PROPS);
const inputProps = _pick(rest, INPUT_PROPS);
const finalClasses = classNames(styles.inputContainer, className);
if (!label) {
return React.createElement("div", Object.assign({}, rootProps, {
className: finalClasses
}), React.createElement(Input, inputProps));
}
return React.createElement("div", Object.assign({}, rootProps, {
className: finalClasses
}), React.createElement("label", null, React.createElement(Input, inputProps), React.createElement("span", null, label)));
};
Radio.propTypes = {
className: PropTypes.string,
label: PropTypes.string
};
export default Radio;