Refactor add custom field component to use shorter conditions
[MAILPOET-2463]
This commit is contained in:
committed by
Pavel Dohnal
parent
374e146fb2
commit
50b4c1ffd6
@@ -7,6 +7,7 @@ import {
|
|||||||
} from '@wordpress/components';
|
} from '@wordpress/components';
|
||||||
|
|
||||||
import MailPoet from 'mailpoet';
|
import MailPoet from 'mailpoet';
|
||||||
|
import { isEmpty } from 'lodash';
|
||||||
|
|
||||||
import mapCustomFieldFormData from '../map_custom_field_form_data.jsx';
|
import mapCustomFieldFormData from '../map_custom_field_form_data.jsx';
|
||||||
import TextFieldSettings from '../custom_text/custom_field_settings.jsx';
|
import TextFieldSettings from '../custom_text/custom_field_settings.jsx';
|
||||||
@@ -44,9 +45,9 @@ export const customFieldTypes = [
|
|||||||
const AddCustomFieldForm = ({ dateSettings, onSubmit }) => {
|
const AddCustomFieldForm = ({ dateSettings, onSubmit }) => {
|
||||||
const [fieldType, setFieldType] = useState('text');
|
const [fieldType, setFieldType] = useState('text');
|
||||||
const [fieldName, setFieldName] = useState(null);
|
const [fieldName, setFieldName] = useState(null);
|
||||||
const [fieldSettings, setFieldSettings] = useState(null);
|
const [fieldSettings, setFieldSettings] = useState({});
|
||||||
|
|
||||||
const canSubmit = () => fieldName && fieldSettings;
|
const canSubmit = () => fieldName && !isEmpty(fieldSettings);
|
||||||
const defaultType = dateSettings.dateTypes[0].value;
|
const defaultType = dateSettings.dateTypes[0].value;
|
||||||
const defaultFormat = dateSettings.dateFormats[defaultType][0];
|
const defaultFormat = dateSettings.dateFormats[defaultType][0];
|
||||||
|
|
||||||
@@ -55,9 +56,9 @@ const AddCustomFieldForm = ({ dateSettings, onSubmit }) => {
|
|||||||
case 'checkbox':
|
case 'checkbox':
|
||||||
return (
|
return (
|
||||||
<CheckboxFieldSettings
|
<CheckboxFieldSettings
|
||||||
mandatory={fieldSettings && fieldSettings.mandatory ? fieldSettings.mandatory : false}
|
mandatory={fieldSettings.mandatory ? fieldSettings.mandatory : false}
|
||||||
isChecked={fieldSettings && fieldSettings.isChecked ? fieldSettings.isChecked : false}
|
isChecked={fieldSettings.isChecked ? fieldSettings.isChecked : false}
|
||||||
checkboxLabel={fieldSettings && fieldSettings.checkboxLabel ? fieldSettings.checkboxLabel : ''}
|
checkboxLabel={fieldSettings.checkboxLabel ? fieldSettings.checkboxLabel : ''}
|
||||||
onChange={setFieldSettings}
|
onChange={setFieldSettings}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
@@ -65,13 +66,10 @@ const AddCustomFieldForm = ({ dateSettings, onSubmit }) => {
|
|||||||
return (
|
return (
|
||||||
<DateFieldSettings
|
<DateFieldSettings
|
||||||
dateSettings={dateSettings}
|
dateSettings={dateSettings}
|
||||||
mandatory={fieldSettings && fieldSettings.mandatory ? fieldSettings.mandatory : false}
|
mandatory={fieldSettings.mandatory ? fieldSettings.mandatory : false}
|
||||||
dateFormat={fieldSettings && fieldSettings.dateFormat
|
dateFormat={fieldSettings.dateFormat ? fieldSettings.dateFormat : defaultFormat}
|
||||||
? fieldSettings.dateFormat : defaultFormat}
|
dateType={fieldSettings.dateType ? fieldSettings.dateType : defaultType}
|
||||||
dateType={fieldSettings && fieldSettings.dateType
|
defaultToday={fieldSettings.defaultToday ? fieldSettings.defaultToday : false}
|
||||||
? fieldSettings.dateType : defaultType}
|
|
||||||
defaultToday={fieldSettings && fieldSettings.defaultToday
|
|
||||||
? fieldSettings.defaultToday : false}
|
|
||||||
onChange={setFieldSettings}
|
onChange={setFieldSettings}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
@@ -79,8 +77,8 @@ const AddCustomFieldForm = ({ dateSettings, onSubmit }) => {
|
|||||||
case 'select':
|
case 'select':
|
||||||
return (
|
return (
|
||||||
<RadioAndSelectFieldSettings
|
<RadioAndSelectFieldSettings
|
||||||
mandatory={fieldSettings && fieldSettings.mandatory ? fieldSettings.mandatory : false}
|
mandatory={fieldSettings.mandatory ? fieldSettings.mandatory : false}
|
||||||
values={fieldSettings && fieldSettings.values ? fieldSettings.values : [{ name: '', id: Math.random().toString() }]}
|
values={fieldSettings.values ? fieldSettings.values : [{ name: '', id: Math.random().toString() }]}
|
||||||
onChange={setFieldSettings}
|
onChange={setFieldSettings}
|
||||||
useDragAndDrop={false}
|
useDragAndDrop={false}
|
||||||
/>
|
/>
|
||||||
@@ -88,8 +86,8 @@ const AddCustomFieldForm = ({ dateSettings, onSubmit }) => {
|
|||||||
default:
|
default:
|
||||||
return (
|
return (
|
||||||
<TextFieldSettings
|
<TextFieldSettings
|
||||||
mandatory={fieldSettings && fieldSettings.mandatory ? fieldSettings.mandatory : false}
|
mandatory={fieldSettings.mandatory ? fieldSettings.mandatory : false}
|
||||||
validate={fieldSettings && fieldSettings.validate ? fieldSettings.validate : ''}
|
validate={fieldSettings.validate ? fieldSettings.validate : ''}
|
||||||
onChange={setFieldSettings}
|
onChange={setFieldSettings}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
@@ -104,7 +102,7 @@ const AddCustomFieldForm = ({ dateSettings, onSubmit }) => {
|
|||||||
options={customFieldTypes}
|
options={customFieldTypes}
|
||||||
data-automation-id="create_custom_field_type_select"
|
data-automation-id="create_custom_field_type_select"
|
||||||
onChange={(value) => {
|
onChange={(value) => {
|
||||||
setFieldSettings(null);
|
setFieldSettings({});
|
||||||
setFieldType(value);
|
setFieldType(value);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
Reference in New Issue
Block a user