- 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);
|
||||
|
||||
Reference in New Issue
Block a user