reakit
Version:
Toolkit for building accessible rich web apps with React
77 lines (69 loc) • 2.81 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var _rollupPluginBabelHelpers = require('../_rollupPluginBabelHelpers-8f9a8751.js');
var createComponent = require('reakit-system/createComponent');
var createHook = require('reakit-system/createHook');
require('reakit-utils/shallowEqual');
var React = require('react');
require('reakit-utils/useIsomorphicEffect');
require('../Role/Role.js');
require('reakit-utils/useSealedState');
require('reakit-utils/getDocument');
require('../reverse-4756a49e.js');
require('../getCurrentId-eade2850.js');
require('../findEnabledItemById-03112678.js');
require('../Id/IdProvider.js');
require('../Group/Group.js');
require('reakit-utils/applyState');
require('../Id/IdState.js');
var Composite_CompositeState = require('../Composite/CompositeState.js');
var __keys = require('../__keys-4b3c7cdc.js');
var getInputId = require('../getInputId-cbd3bbcc.js');
require('../getLabelId-eba7e47b.js');
require('./utils/getIn.js');
require('../shouldShowError-880a39c9.js');
var Form_FormGroup = require('./FormGroup.js');
var FormRadioGroupContext = /*#__PURE__*/React.createContext(null);
var unstable_useFormRadioGroup = createHook.createHook({
name: "FormRadioGroup",
compose: Form_FormGroup.unstable_useFormGroup,
keys: __keys.FORM_RADIO_GROUP_KEYS,
useOptions: function useOptions(options, _ref) {
var name = _ref.name;
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, options), {}, {
name: options.name || name
});
},
useProps: function useProps(options, _ref2) {
var htmlWrapElement = _ref2.wrapElement,
htmlProps = _rollupPluginBabelHelpers._objectWithoutPropertiesLoose(_ref2, ["wrapElement"]);
var id = getInputId.getInputId(options.name, options.baseId);
var composite = Composite_CompositeState.useCompositeState({
baseId: id,
loop: true
});
var providerValue = React.useMemo(function () {
return composite;
}, Object.values(composite));
var wrapElement = React.useCallback(function (element) {
element = /*#__PURE__*/React.createElement(FormRadioGroupContext.Provider, {
value: providerValue
}, element);
if (htmlWrapElement) {
return htmlWrapElement(element);
}
return element;
}, [providerValue, htmlWrapElement]);
return _rollupPluginBabelHelpers._objectSpread2({
role: "radiogroup",
wrapElement: wrapElement
}, htmlProps);
}
});
var unstable_FormRadioGroup = createComponent.createComponent({
as: "fieldset",
useHook: unstable_useFormRadioGroup
});
exports.FormRadioGroupContext = FormRadioGroupContext;
exports.unstable_FormRadioGroup = unstable_FormRadioGroup;
exports.unstable_useFormRadioGroup = unstable_useFormRadioGroup;
;