From bca9a6a53b24964c2fb7106f98a54f80b0e782bb Mon Sep 17 00:00:00 2001 From: Vigneshkumar Chinnachamy M Date: Wed, 21 Aug 2019 03:50:18 +0530 Subject: [PATCH] fix #3263 --- src/components/Select/FormsySelect.jsx | 33 +++ .../settings/components/SettingsPanel.scss | 2 + src/routes/settings/constants/settings.js | 257 ------------------ src/routes/settings/helpers/settings.js | 43 +-- .../components/ProfileSettingsForm.jsx | 109 ++++++-- .../components/ProfileSettingsForm.scss | 36 +++ 6 files changed, 180 insertions(+), 300 deletions(-) create mode 100644 src/components/Select/FormsySelect.jsx delete mode 100644 src/routes/settings/constants/settings.js diff --git a/src/components/Select/FormsySelect.jsx b/src/components/Select/FormsySelect.jsx new file mode 100644 index 000000000..e87855570 --- /dev/null +++ b/src/components/Select/FormsySelect.jsx @@ -0,0 +1,33 @@ +import React from 'react' +import PropTypes from 'prop-types' +import { HOC as hoc } from 'formsy-react' + +import Select from './Select' + +/** + * This component is a formsy wrapper for the Select component + * @param {Object} props Component props + */ +const FormsySelect = props => { + // when setValueOnly is set to true, formsy should submit the 'option.value' instead of the whole 'option' object + const { onChange, setValueOnly, options } = props + const selectedOption = props.getValue() + + const onSelectionChange = selectedOption => { + props.setValue(setValueOnly ? selectedOption.value : selectedOption) + onChange && onChange(selectedOption) + } + const value = setValueOnly + ? _.find(options, o => o.value === selectedOption) + : selectedOption + + return