From ffae9fa5e754a038a406bd72dff9ad85c9dab62d Mon Sep 17 00:00:00 2001 From: ronronscelestes Date: Tue, 19 Oct 2021 14:47:56 +0200 Subject: [PATCH] refacto FormModal handleChange for CustomRadioGroup --- .../src/components/CustomRadioGroup/index.js | 19 ++++++++++++++++++- .../admin/src/components/FormModal/index.js | 12 ------------ 2 files changed, 18 insertions(+), 13 deletions(-) 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; }