informed
Version:
A lightweight framework and utility for building powerful forms in React applications
47 lines (40 loc) • 1.85 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
var React = require('react');
var Context = require('../../Context.js');
var useField = require('../../hooks/useField.js');
var Radio = require('./Radio.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var RadioGroup = function RadioGroup(props) {
var _useField = useField.useField(props),
fieldApi = _useField.fieldApi,
fieldState = _useField.fieldState,
userProps = _useField.userProps;
var groupContext = _rollupPluginBabelHelpers.objectSpread2({
radioGroupApi: fieldApi,
radioGroupState: fieldState
}, props);
var label = userProps.label,
id = userProps.id,
options = userProps.options,
children = userProps.children;
var showError = fieldState.showError,
error = fieldState.error;
return /*#__PURE__*/React__default["default"].createElement(Context.RadioGroupContext.Provider, {
value: groupContext
}, /*#__PURE__*/React__default["default"].createElement("fieldset", {
"aria-describedby": "".concat(id, "-error")
}, label ? /*#__PURE__*/React__default["default"].createElement("legend", null, label) : null, options ? options.map(function (option) {
return /*#__PURE__*/React__default["default"].createElement("label", {
key: option.value
}, option.label, " ", /*#__PURE__*/React__default["default"].createElement(Radio.Radio, {
value: option.value
}));
}) : children, showError ? /*#__PURE__*/React__default["default"].createElement("small", {
role: "alert",
id: "".concat(id, "-error")
}, error) : null));
};
exports.RadioGroup = RadioGroup;