diff --git a/packages/core/content-type-builder/admin/src/components/CustomRadioGroup/index.js b/packages/core/content-type-builder/admin/src/components/CustomRadioGroup/index.js index 523ae27c48..8133d982fe 100644 --- a/packages/core/content-type-builder/admin/src/components/CustomRadioGroup/index.js +++ b/packages/core/content-type-builder/admin/src/components/CustomRadioGroup/index.js @@ -10,6 +10,23 @@ import { Wrapper } from './components'; const CustomRadioGroup = ({ intlLabel, name, onChange, radios, value }) => { const { formatMessage } = useIntl(); + const handleChange = e => { + let checked; + + if ( + name === 'multiple' || + name === 'single' || + name === 'createComponent' || + name === 'repeatable' + ) { + checked = e.target.value !== 'false'; + } else { + checked = e.target.value; + } + + onChange({ target: { name, value: checked, type: 'radio' } }); + }; + return ( @@ -26,7 +43,7 @@ const CustomRadioGroup = ({ intlLabel, name, onChange, radios, value }) => { checked={radio.value === value} value={radio.value} key={radio.value} - onChange={onChange} + onChange={handleChange} type="radio" /> diff --git a/packages/core/content-type-builder/admin/src/components/FormModal/index.js b/packages/core/content-type-builder/admin/src/components/FormModal/index.js index 823982a207..53d28367b1 100644 --- a/packages/core/content-type-builder/admin/src/components/FormModal/index.js +++ b/packages/core/content-type-builder/admin/src/components/FormModal/index.js @@ -467,18 +467,6 @@ const FormModal = () => { if (namesThatCanResetToNullValue.includes(name) && value === '') { val = null; - } else if ( - type === 'radio' && - (name === 'multiple' || - name === 'single' || - name === 'createComponent' || - name === 'repeatable') - ) { - // eslint-disable-next-line no-unneeded-ternary - val = value === 'false' ? false : true; - - // The boolean default accepts 3 different values - // This check has been added to allow a reset to null for the bool } else { val = value; }