Disable DND in create custom field block

[MAILPOET-2463]
This commit is contained in:
Rostislav Wolny
2020-01-15 10:30:14 +01:00
committed by Pavel Dohnal
parent d72e6343c6
commit fe7be1314c
3 changed files with 34 additions and 14 deletions

View File

@@ -82,6 +82,7 @@ const AddCustomFieldForm = ({ dateSettings, onSubmit }) => {
mandatory={fieldSettings && fieldSettings.mandatory ? fieldSettings.mandatory : false} mandatory={fieldSettings && fieldSettings.mandatory ? fieldSettings.mandatory : false}
values={fieldSettings && fieldSettings.values ? fieldSettings.values : [{ name: '', id: Math.random().toString() }]} values={fieldSettings && fieldSettings.values ? fieldSettings.values : [{ name: '', id: Math.random().toString() }]}
onChange={setFieldSettings} onChange={setFieldSettings}
useDragAndDrop={false}
/> />
); );
default: default:

View File

@@ -18,6 +18,7 @@ const CustomFieldSettings = ({
isDeleting, isDeleting,
onCustomFieldDelete, onCustomFieldDelete,
onChange, onChange,
useDragAndDrop,
}) => { }) => {
const [localMandatory, setLocalMandatory] = useState(mandatory); const [localMandatory, setLocalMandatory] = useState(mandatory);
const [localValues, setLocalValues] = useState(JSON.parse(JSON.stringify(values))); const [localValues, setLocalValues] = useState(JSON.parse(JSON.stringify(values)));
@@ -88,6 +89,7 @@ const CustomFieldSettings = ({
update={update} update={update}
values={localValues} values={localValues}
onReorder={setLocalValues} onReorder={setLocalValues}
useDragAndDrop={useDragAndDrop}
/> />
<Button <Button
isLink isLink
@@ -117,6 +119,7 @@ CustomFieldSettings.propTypes = {
isDeleting: PropTypes.bool, isDeleting: PropTypes.bool,
onCustomFieldDelete: PropTypes.func, onCustomFieldDelete: PropTypes.func,
onChange: PropTypes.func, onChange: PropTypes.func,
useDragAndDrop: PropTypes.bool,
}; };
CustomFieldSettings.defaultProps = { CustomFieldSettings.defaultProps = {
@@ -127,6 +130,7 @@ CustomFieldSettings.defaultProps = {
onCustomFieldDelete: null, onCustomFieldDelete: null,
onSave: null, onSave: null,
onChange: null, onChange: null,
useDragAndDrop: true,
}; };
export default CustomFieldSettings; export default CustomFieldSettings;

View File

@@ -53,6 +53,7 @@ const Preview = ({
update, update,
remove, remove,
onReorder, onReorder,
useDragAndDrop,
}) => { }) => {
const [valuesWhileMoved, setValues] = useState(values); const [valuesWhileMoved, setValues] = useState(values);
@@ -83,22 +84,31 @@ const Preview = ({
update(value); update(value);
}; };
return ( const renderItems = () => (valuesWhileMoved.map((value, index) => (
<PreviewItem
key={value.id}
index={index}
value={value}
remove={remove}
onCheck={onCheck}
onUpdate={onUpdate}
/>
)));
return (useDragAndDrop ? (
<ReactSortable
list={valuesWhileMoved}
setList={onReorder}
className="mailpoet-dnd-items-list"
animation={100}
>
{renderItems()}
</ReactSortable>
) : (
<div className="mailpoet-dnd-items-list"> <div className="mailpoet-dnd-items-list">
<ReactSortable list={valuesWhileMoved} setList={onReorder}> {renderItems()}
{valuesWhileMoved.map((value, index) => (
<PreviewItem
key={value.id}
index={index}
value={value}
remove={remove}
onCheck={onCheck}
onUpdate={onUpdate}
/>
))}
</ReactSortable>
</div> </div>
); ));
}; };
Preview.propTypes = { Preview.propTypes = {
@@ -109,6 +119,11 @@ Preview.propTypes = {
update: PropTypes.func.isRequired, update: PropTypes.func.isRequired,
remove: PropTypes.func.isRequired, remove: PropTypes.func.isRequired,
onReorder: PropTypes.func.isRequired, onReorder: PropTypes.func.isRequired,
useDragAndDrop: PropTypes.bool,
};
Preview.defaultProps = {
useDragAndDrop: true,
}; };
export default Preview; export default Preview;