@wordpress/components
Version:
UI components for WordPress.
61 lines (49 loc) • 1.47 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@wordpress/element");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _Radio = require("reakit/Radio");
var _buttonGroup = _interopRequireDefault(require("../button-group"));
var _radioContext = _interopRequireDefault(require("../radio-context"));
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function RadioGroup({
label,
checked,
defaultChecked,
disabled,
onChange,
...props
}, ref) {
const radioState = (0, _Radio.useRadioState)({
state: defaultChecked,
baseId: props.id
});
const radioContext = { ...radioState,
disabled,
// controlled or uncontrolled
state: checked !== null && checked !== void 0 ? checked : radioState.state,
setState: onChange !== null && onChange !== void 0 ? onChange : radioState.setState
};
return (0, _element.createElement)(_radioContext.default.Provider, {
value: radioContext
}, (0, _element.createElement)(_Radio.RadioGroup, (0, _extends2.default)({
ref: ref,
as: _buttonGroup.default,
"aria-label": label
}, radioState, props)));
}
var _default = (0, _element.forwardRef)(RadioGroup);
exports.default = _default;
//# sourceMappingURL=index.js.map