@clayui/form
Version:
ClayForm component
43 lines (42 loc) • 1.03 kB
JavaScript
import { useControlledState } from "@clayui/shared";
import classNames from "classnames";
import React from "react";
function RadioGroup({
children,
className,
defaultValue,
inline,
name,
onChange,
onSelectedValueChange,
selectedValue,
value,
...otherProps
}) {
const [internalValue, setValue] = useControlledState({
defaultName: "defaultValue",
defaultValue,
handleName: "onChange",
name: "value",
onChange: onChange ?? onSelectedValueChange,
value: value ?? selectedValue
});
return /* @__PURE__ */ React.createElement("div", { ...otherProps, className: classNames(className) }, React.Children.map(
children,
(child, i) => {
return React.cloneElement(child, {
...child.props,
checked: internalValue === child.props.value,
inline,
key: i,
name,
onChange: () => setValue(child.props.value),
type: "radio"
});
}
));
}
var RadioGroup_default = RadioGroup;
export {
RadioGroup_default as default
};