informed
Version:
A lightweight framework and utility for building powerful forms in React applications
43 lines (36 loc) • 1.5 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
var React = require('react');
var useRadioGroup = require('../../hooks/useRadioGroup.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var _excluded = ["label", "value"];
var Radio = function Radio(_ref) {
var label = _ref.label,
value = _ref.value,
props = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
var _useRadioGroup = useRadioGroup.useRadioGroup(),
radioGroupApi = _useRadioGroup.radioGroupApi,
radioGroupState = _useRadioGroup.radioGroupState;
var setValue = radioGroupApi.setValue,
setTouched = radioGroupApi.setTouched;
var groupValue = radioGroupState.value,
showError = radioGroupState.showError;
return /*#__PURE__*/React__default["default"].createElement("label", null, label, /*#__PURE__*/React__default["default"].createElement("input", _rollupPluginBabelHelpers["extends"]({}, props, {
"aria-invalid": !!showError,
value: value,
checked: groupValue === value,
onChange: function onChange(e) {
if (!e.target.checked) {
return;
}
setValue(value, e);
},
onBlur: function onBlur(e) {
setTouched(true, e);
},
type: "radio"
})));
};
exports.Radio = Radio;