From 020e99536c7e858e547f84e44352c8c45aabe196 Mon Sep 17 00:00:00 2001
From: Yannis Barlas <yannisbarlas@gmail.com>
Date: Wed, 14 Apr 2021 14:53:55 +0300
Subject: [PATCH] fix(ui): handle empty value in form builder select

---
 .../src/components/ComponentProperties.js         | 15 +++++++++++----
 .../src/components/builderComponents/Menu.js      |  1 +
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/app/components/component-formbuilder/src/components/ComponentProperties.js b/app/components/component-formbuilder/src/components/ComponentProperties.js
index b584d81eb7..23b8a382c3 100644
--- a/app/components/component-formbuilder/src/components/ComponentProperties.js
+++ b/app/components/component-formbuilder/src/components/ComponentProperties.js
@@ -1,8 +1,10 @@
 import React, { useState } from 'react'
 import PropTypes from 'prop-types'
-import { map, omitBy } from 'lodash'
-import { ValidatedFieldFormik, Menu, Button } from '@pubsweet/ui'
+import { isEmpty, map, omitBy } from 'lodash'
 import { Formik } from 'formik'
+
+import { ValidatedFieldFormik, Menu, Button } from '@pubsweet/ui'
+
 import FormProperties from './FormProperties'
 import components from './config/Elements'
 import * as elements from './builderComponents'
@@ -50,9 +52,14 @@ const ComponentProperties = ({
               component={elements[value.component].default}
               key={`${selectedComponent}-${key}`}
               name={key}
-              onChange={val =>
+              onChange={val => {
+                if (isEmpty(val)) {
+                  setFieldValue(key, null)
+                  return
+                }
+
                 setFieldValue(key, val.target ? val.target.value : val)
-              }
+              }}
               {...value.props}
             />
           </Section>
diff --git a/app/components/component-formbuilder/src/components/builderComponents/Menu.js b/app/components/component-formbuilder/src/components/builderComponents/Menu.js
index 4106846b3a..fb1425bc2c 100644
--- a/app/components/component-formbuilder/src/components/builderComponents/Menu.js
+++ b/app/components/component-formbuilder/src/components/builderComponents/Menu.js
@@ -24,6 +24,7 @@ const ValidationMenu = input => (
           </Section>
         )
       }
+
       return null
     })}
   </>
-- 
GitLab