- updated version;

This commit is contained in:
Vitalii Kiiko
2024-09-06 17:28:25 +02:00
parent 4054745695
commit 19e17ec2d7
14 changed files with 160 additions and 51 deletions

View File

@@ -43,7 +43,7 @@ const NodeIntermediateForm = ({ data: { id, label = '' } }) => {
}, [flowEdges, flowData]);
return (
<div className="nodeInitialForm">
<div className="nodeIntermediateForm">
<Handle
type="target"
position={Position.Top}

View File

@@ -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);