lole-ui
Version:
React UI Component which like a love letter
29 lines (28 loc) • 1.36 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
import React, { memo, useCallback } from "react";
import classnames from "classnames";
import Radio from "./radio";
import { useIsValidChildren } from "../../hooks/useIsValidChildren";
var RadioGroup = memo(function (_a) {
var value = _a.value, onChange = _a.onChange, children = _a.children, className = _a.className, style = _a.style;
var classes = classnames('xiOn-radio-group', className);
var handleOnChange = useCallback(function (e) {
onChange && onChange(e);
}, [onChange]);
var isValidChildren = useIsValidChildren(children, Radio).isValidChildren;
return isValidChildren ? (React.createElement("div", { className: classes, style: style }, React.Children.map(children, function (_) {
var childProps = __assign(__assign({}, _.props), { name: "group", defaultValue: value, onChange: handleOnChange });
return React.cloneElement(_, childProps);
}))) : null;
});
export default RadioGroup;