UNPKG

@massds/mayflower-react

Version:

React versions of Mayflower design system UI components

78 lines (76 loc) 3.04 kB
"use strict"; exports.__esModule = true; exports["default"] = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } /** * InputRadio module. * @module @massds/mayflower-react/InputRadio * @requires module:@massds/mayflower-assets/scss/01-atoms/input-radio */ var InputRadio = function InputRadio(props) { var radioClasses = (0, _classnames["default"])({ 'ma__input-radio': !props.outline, 'ma__input-radio--outline': props.outline }); var inputClasses = (0, _classnames["default"])({ 'ma__input-radio__control': !props.outline, 'ma__input-radio--outline__control': props.outline, 'ma__input-radio--outline__control--error': props.error }); var labelClasses = (0, _classnames["default"])({ 'ma__input-radio__label': !props.outline, 'ma__input-radio__label--error': props.error && !props.outline, 'ma__input-radio--outline__label': props.outline, 'ma__input-radio--outline__label--error': props.error && props.outline }); return /*#__PURE__*/_react["default"].createElement("div", { className: radioClasses }, /*#__PURE__*/_react["default"].createElement("input", { checked: props.checked, name: props.name, type: "radio", value: props.value, id: props.id || props.value, required: props.required, onChange: props.onChange, disabled: props.disabled, className: inputClasses }), /*#__PURE__*/_react["default"].createElement("label", { htmlFor: props.id || props.value, className: labelClasses }, /*#__PURE__*/_react["default"].createElement("span", null, props.label))); }; InputRadio.propTypes = process.env.NODE_ENV !== "production" ? { /** The name of the input radio. */ name: _propTypes["default"].string.isRequired, /** The id of the input radio. Defaults to the value if not provided. */ id: _propTypes["default"].string, /** The value of the input radio */ value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]).isRequired, /** The input radio label */ label: _propTypes["default"].string.isRequired, /** Whether the input radio is checked or not */ checked: _propTypes["default"].bool, /** Whether radio input is required or not */ required: _propTypes["default"].bool, /** Whether you want the radio input outlined */ outline: _propTypes["default"].bool, /** OnChange function */ onChange: _propTypes["default"].func, /** Whether the radio button is disabled or not */ disabled: _propTypes["default"].bool, /** Whether the input is in an error state */ error: _propTypes["default"].bool } : {}; InputRadio.defaultProps = { outline: false, required: false, onChange: function onChange() {}, disabled: false, error: false }; var _default = exports["default"] = InputRadio; module.exports = exports.default;