1 | "use strict";
|
2 |
|
3 | var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
4 |
|
5 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
6 |
|
7 | Object.defineProperty(exports, "__esModule", {
|
8 | value: true
|
9 | });
|
10 | exports.default = void 0;
|
11 |
|
12 | var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13 |
|
14 | var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
15 |
|
16 | var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
17 |
|
18 | var React = _interopRequireWildcard(require("react"));
|
19 |
|
20 | var _propTypes = _interopRequireDefault(require("prop-types"));
|
21 |
|
22 | var _FormGroup = _interopRequireDefault(require("../FormGroup"));
|
23 |
|
24 | var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
|
25 |
|
26 | var _useControlled3 = _interopRequireDefault(require("../utils/useControlled"));
|
27 |
|
28 | var _RadioGroupContext = _interopRequireDefault(require("./RadioGroupContext"));
|
29 |
|
30 | var _unstable_useId = _interopRequireDefault(require("../utils/unstable_useId"));
|
31 |
|
32 | var RadioGroup = React.forwardRef(function RadioGroup(props, ref) {
|
33 | var actions = props.actions,
|
34 | children = props.children,
|
35 | nameProp = props.name,
|
36 | valueProp = props.value,
|
37 | onChange = props.onChange,
|
38 | other = (0, _objectWithoutProperties2.default)(props, ["actions", "children", "name", "value", "onChange"]);
|
39 | var rootRef = React.useRef(null);
|
40 |
|
41 | var _useControlled = (0, _useControlled3.default)({
|
42 | controlled: valueProp,
|
43 | default: props.defaultValue,
|
44 | name: 'RadioGroup'
|
45 | }),
|
46 | _useControlled2 = (0, _slicedToArray2.default)(_useControlled, 2),
|
47 | value = _useControlled2[0],
|
48 | setValue = _useControlled2[1];
|
49 |
|
50 | React.useImperativeHandle(actions, function () {
|
51 | return {
|
52 | focus: function focus() {
|
53 | var input = rootRef.current.querySelector('input:not(:disabled):checked');
|
54 |
|
55 | if (!input) {
|
56 | input = rootRef.current.querySelector('input:not(:disabled)');
|
57 | }
|
58 |
|
59 | if (input) {
|
60 | input.focus();
|
61 | }
|
62 | }
|
63 | };
|
64 | }, []);
|
65 | var handleRef = (0, _useForkRef.default)(ref, rootRef);
|
66 |
|
67 | var handleChange = function handleChange(event) {
|
68 | setValue(event.target.value);
|
69 |
|
70 | if (onChange) {
|
71 | onChange(event, event.target.value);
|
72 | }
|
73 | };
|
74 |
|
75 | var name = (0, _unstable_useId.default)(nameProp);
|
76 | return React.createElement(_RadioGroupContext.default.Provider, {
|
77 | value: {
|
78 | name: name,
|
79 | onChange: handleChange,
|
80 | value: value
|
81 | }
|
82 | }, React.createElement(_FormGroup.default, (0, _extends2.default)({
|
83 | role: "radiogroup",
|
84 | ref: handleRef
|
85 | }, other), children));
|
86 | });
|
87 | process.env.NODE_ENV !== "production" ? RadioGroup.propTypes = {
|
88 |
|
89 |
|
90 |
|
91 |
|
92 |
|
93 | |
94 |
|
95 |
|
96 | children: _propTypes.default.node,
|
97 |
|
98 | |
99 |
|
100 |
|
101 | defaultValue: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string), _propTypes.default.number, _propTypes.default.string]),
|
102 |
|
103 | |
104 |
|
105 |
|
106 |
|
107 | name: _propTypes.default.string,
|
108 |
|
109 | |
110 |
|
111 |
|
112 |
|
113 |
|
114 |
|
115 | onChange: _propTypes.default.func,
|
116 |
|
117 | |
118 |
|
119 |
|
120 | value: _propTypes.default.any
|
121 | } : void 0;
|
122 | var _default = RadioGroup;
|
123 | exports.default = _default; |
\ | No newline at end of file |