UNPKG

@kadconsulting/dry

Version:
30 lines 1.51 kB
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