- updated version;
This commit is contained in:
@@ -43,7 +43,7 @@ const NodeIntermediateForm = ({ data: { id, label = '' } }) => {
|
||||
}, [flowEdges, flowData]);
|
||||
|
||||
return (
|
||||
<div className="nodeInitialForm">
|
||||
<div className="nodeIntermediateForm">
|
||||
<Handle
|
||||
type="target"
|
||||
position={Position.Top}
|
||||
|
||||
@@ -32,33 +32,38 @@ const FlowBuilder = ({ initialForm = 0, finalForm = 0 }) => {
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
if (initialForm && finalForm && forms.length) {
|
||||
if (
|
||||
(forms.length === 2 && initialForm) ||
|
||||
(forms.length > 2 && initialForm && finalForm)
|
||||
) {
|
||||
const total = (forms.length - 2) * (200 - 90);
|
||||
let coordinates = range(total * -1, total, 200);
|
||||
|
||||
const initialNodes = forms.map(o => {
|
||||
const formId = String(o.id);
|
||||
let obj;
|
||||
|
||||
if (o.id === initialForm) {
|
||||
if (formId === String(initialForm)) {
|
||||
obj = {
|
||||
id: String(o.id),
|
||||
id: formId,
|
||||
type: 'initialForm',
|
||||
data: { label: o.label, id: o.id },
|
||||
data: { label: o.label, id: formId },
|
||||
position: { x: 0, y: 0 },
|
||||
}
|
||||
} else if (o.id === finalForm) {
|
||||
} else if (formId === String(finalForm)) {
|
||||
obj = {
|
||||
id: String(o.id),
|
||||
id: formId,
|
||||
type: 'output',
|
||||
data: { label: o.label, id: o.id },
|
||||
data: { label: o.label, id: formId },
|
||||
position: { x: 0, y: 300 },
|
||||
}
|
||||
} else {
|
||||
const x = coordinates.splice(0, 1);
|
||||
console.log('x', x)
|
||||
obj = {
|
||||
id: String(o.id),
|
||||
id: formId,
|
||||
type: 'intermediateForm',
|
||||
data: { label: o.label, id: o.id },
|
||||
data: { label: o.label, id: formId },
|
||||
position: { x, y: 150 },
|
||||
}
|
||||
}
|
||||
@@ -66,13 +71,18 @@ const FlowBuilder = ({ initialForm = 0, finalForm = 0 }) => {
|
||||
});
|
||||
|
||||
let edges = [];
|
||||
// eslint-disable-next-line
|
||||
forms.map(o => {
|
||||
if (o.id !== initialForm && o.id !== finalForm) {
|
||||
edges.push({ id: `${initialForm}->${o.id}`, source: String(initialForm), target: String(o.id), type: 'smoothstep' });
|
||||
edges.push({ id: `${o.id}->${finalForm}`, source: String(o.id), target: String(finalForm), type: 'smoothstep' });
|
||||
const formId = String(o.id);
|
||||
|
||||
if (formId !== String(initialForm) && formId !== String(finalForm)) {
|
||||
edges.push({ id: `${initialForm}->${formId}`, source: String(initialForm), target: formId, type: 'smoothstep' });
|
||||
}
|
||||
if (formId !== String(finalForm) && formId !== String(initialForm) && String(finalForm) !== '0') {
|
||||
edges.push({ id: `${formId}->${finalForm}`, source: formId, target: String(finalForm), type: 'smoothstep' });
|
||||
}
|
||||
});
|
||||
|
||||
console.log('edges', edges, initialNodes);
|
||||
setNodes(initialNodes);
|
||||
setEdges(edges);
|
||||
storeSet.main.flowEdges(edges);
|
||||
|
||||
@@ -116,7 +116,9 @@ const FileuploadAsync = ({
|
||||
}, [accept]);
|
||||
|
||||
useEffect(() => {
|
||||
inputRef.current.setUploadedFiles(stateFieldData);
|
||||
if (inputRef.current) {
|
||||
inputRef.current.setUploadedFiles(stateFieldData);
|
||||
}
|
||||
setDataFn(fieldName, [...stateFieldData], { shouldValidate: true });
|
||||
}, [stateFieldData])
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import React, { useRef, useEffect, useState, useCallback } from 'react';
|
||||
import { classNames } from 'primereact/utils';
|
||||
import { __ } from '@wordpress/i18n';
|
||||
import { head, isEmpty, isNil } from 'ramda';
|
||||
import { head, isEmpty, isNil, pluck } from 'ramda';
|
||||
import { diff } from 'deep-object-diff';
|
||||
|
||||
// components
|
||||
import { InputText } from 'primereact/inputtext';
|
||||
import { Button } from 'primereact/button';
|
||||
import { Menu } from 'primereact/menu';
|
||||
import { Dropdown } from 'primereact/dropdown';
|
||||
import { diff } from 'deep-object-diff';
|
||||
|
||||
const FormFieldRepeater = ({
|
||||
data,
|
||||
@@ -39,7 +39,7 @@ const FormFieldRepeater = ({
|
||||
setStateFieldData([...stateFieldData, { id: null, value: '', lookUpDataId: null }]);
|
||||
}
|
||||
}
|
||||
]
|
||||
];
|
||||
|
||||
const removeItem = (index) => {
|
||||
const newData = stateFieldData.toSpliced(index, 1);
|
||||
@@ -96,6 +96,11 @@ const FormFieldRepeater = ({
|
||||
if (!isEmpty(diffData)) {
|
||||
const storeFieldData = data ?? [];
|
||||
setStateFieldData(storeFieldData);
|
||||
setStateOptionsData(prevState => {
|
||||
const ids = pluck('id', storeFieldData)
|
||||
const objectsToAdd = storeFieldData.filter(o => ids.includes(o.id));
|
||||
return [...prevState, ...objectsToAdd];
|
||||
});
|
||||
}
|
||||
}, [data]);
|
||||
|
||||
@@ -105,7 +110,7 @@ const FormFieldRepeater = ({
|
||||
|
||||
useEffect(() => {
|
||||
setDataFn(fieldName, [...stateFieldData], { shouldValidate: true });
|
||||
}, [stateFieldData])
|
||||
}, [stateFieldData]);
|
||||
|
||||
return (
|
||||
<div className={classNames(['appForm__field', 'formfieldrepeater'])}>
|
||||
|
||||
@@ -61,8 +61,9 @@ const FormFieldRepeaterFaq = ({
|
||||
|
||||
const editItem = (e, index) => {
|
||||
e.stopPropagation();
|
||||
setQuestion(stateFieldData[index].title);
|
||||
setAnswer(stateFieldData[index].value);
|
||||
setTitle(stateFieldData[index].title);
|
||||
setQuestion(stateFieldData[index].value);
|
||||
setAnswer(stateFieldData[index].response);
|
||||
setEditDataIndex(index);
|
||||
setIsVisibleEditDialog(true);
|
||||
}
|
||||
@@ -71,6 +72,7 @@ const FormFieldRepeaterFaq = ({
|
||||
setIsVisibleEditDialog(false);
|
||||
setQuestion('');
|
||||
setAnswer('');
|
||||
setTitle('');
|
||||
setEditDataIndex(null);
|
||||
}
|
||||
|
||||
@@ -99,6 +101,7 @@ const FormFieldRepeaterFaq = ({
|
||||
setIsVisibleEditDialog(false);
|
||||
setQuestion('');
|
||||
setAnswer('');
|
||||
setTitle('');
|
||||
setEditDataIndex(null);
|
||||
}
|
||||
|
||||
@@ -172,7 +175,6 @@ const FormFieldRepeaterFaq = ({
|
||||
offLabel=""
|
||||
checked={o.isVisible}
|
||||
onChange={(e) => {
|
||||
console.log('e', e);
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
setChecked(e, i);
|
||||
@@ -181,9 +183,11 @@ const FormFieldRepeaterFaq = ({
|
||||
</div>
|
||||
<div className="appForm__faqTabItem">
|
||||
<Button icon="pi pi-pencil" severity="success"
|
||||
type="button"
|
||||
aria-label={__('Modifica', 'gepafin')}
|
||||
onClick={(e) => editItem(e, i)}/>
|
||||
<Button icon="pi pi-times" severity="danger"
|
||||
type="button"
|
||||
aria-label={__('Cancella', 'gepafin')}
|
||||
onClick={() => removeItem(i)}/>
|
||||
</div>
|
||||
|
||||
@@ -10,7 +10,6 @@ const UnsavedChangesDetector = ({ getValuesFn }) => {
|
||||
const formData = getValuesFn();
|
||||
const initial = storeGet.main.formInitialData();
|
||||
const isEqual = equal(initial, formData);
|
||||
console.log(initial, formData);
|
||||
|
||||
if (!isEqual) {
|
||||
event.returnValue = __('You have unsaved changes. If you proceed, they will be lost.', 'gepafin');
|
||||
|
||||
Reference in New Issue
Block a user