@kadconsulting/dry
Version:
KAD Reusable Component Library
30 lines • 1.51 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { createElement as _createElement } from "react";
import { forwardRef, useState, useEffect } from 'react';
import classnames from 'classnames';
import './RadioButtonGroup.scss';
import { RadioButton } from '../RadioButton';
const RadioButtonGroup = forwardRef(({ id, className, name, options, selectedValue, onChange, type = 'vertical', ...props }, ref) => {
const [selectedOption, setSelectedOption] = useState(selectedValue);
useEffect(() => {
setSelectedOption(selectedValue);
}, [selectedValue]);
const handleChange = (event) => {
const newSelectedValue = event.target.value;
setSelectedOption(newSelectedValue);
if (onChange) {
onChange(event, newSelectedValue);
}
};
return (_jsx("div", { id: id, ref: ref, className: classnames('dry-radio-button-group', className, {
'dry-radio-button-group__horizontal': type === 'horizontal',
'dry-radio-button-group__vertical': type === 'vertical',
}), ...props, children: options.map((option, index) => (_createElement(RadioButton, { ...option, isFullWidth: type === 'vertical', key: index, name: name, checked: selectedOption === option.value, onChange: (e) => {
handleChange(e);
if (option.onChange) {
option.onChange(e);
}
} }))) }));
});
export default RadioButtonGroup;
//# sourceMappingURL=RadioButtonGroup.js.map