@massds/mayflower-react
Version:
React versions of Mayflower design system UI components
78 lines (76 loc) • 3.04 kB
JavaScript
"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;