import { ariaDescribedByIds, enumOptionsIsSelected, enumOptionsValueForIndex, optionId, FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps, } from '@snups/rjsf-utils'; import { RadioButton, RadioButtonChangeEvent } from 'primereact/radiobutton'; /** The `RadioWidget` is a widget for rendering a radio group. * It is typically used with a string property constrained with enum options. * * @param props - The `WidgetProps` for this component */ export default function RadioWidget( props: WidgetProps, ) { const { id, value, disabled, readonly, onChange, onBlur, onFocus, options } = props; const primeProps = (options.prime || {}) as object; const { enumOptions, enumDisabled, emptyValue } = options; const _onChange = (e: RadioButtonChangeEvent) => { onChange(enumOptionsValueForIndex(e.value, enumOptions, emptyValue)); }; const _onBlur = () => onBlur(id, value); const _onFocus = () => onFocus(id, value); return (
{Array.isArray(enumOptions) && enumOptions.map((option, index) => { const checked = enumOptionsIsSelected(option.value, value); const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1; return (
(id)} />
); })}
); }