import { ChangeEvent, FocusEvent } from 'react'; import Form from 'react-bootstrap/Form'; import { ariaDescribedByIds, enumOptionsIsSelected, enumOptionsValueForIndex, optionId, FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps, } from '@rjsf/utils'; export default function RadioWidget({ id, options, value, required, disabled, readonly, onChange, onBlur, onFocus, }: WidgetProps) { const { enumOptions, enumDisabled, emptyValue } = options; const _onChange = ({ target: { value } }: ChangeEvent) => onChange(enumOptionsValueForIndex(value, enumOptions, emptyValue)); const _onBlur = ({ target: { value } }: FocusEvent) => onBlur(id, enumOptionsValueForIndex(value, enumOptions, emptyValue)); const _onFocus = ({ target: { value } }: FocusEvent) => onFocus(id, enumOptionsValueForIndex(value, enumOptions, emptyValue)); const inline = Boolean(options && options.inline); return ( {Array.isArray(enumOptions) && enumOptions.map((option, index) => { const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1; const checked = enumOptionsIsSelected(option.value, value); const radio = ( (id)} /> ); return radio; })} ); }