informed
Version:
A lightweight framework and utility for building powerful forms in React applications
35 lines (32 loc) • 1.17 kB
JavaScript
import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
import React from 'react';
import { useRadioGroup } from '../../hooks/useRadioGroup.js';
var _excluded = ["label", "value"];
var Radio = function Radio(_ref) {
var label = _ref.label,
value = _ref.value,
props = _objectWithoutProperties(_ref, _excluded);
var _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.createElement("label", null, label, /*#__PURE__*/React.createElement("input", _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"
})));
};
export { Radio };