UNPKG

@nomios/web-uikit

Version:
39 lines (32 loc) 1.17 kB
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;