diff --git a/src/designer/elsa-workflows-designer/src/components/activities/flowchart/activity-walker.ts b/src/designer/elsa-workflows-designer/src/components/activities/flowchart/activity-walker.ts index f115a6f9e..1da18bd5a 100644 --- a/src/designer/elsa-workflows-designer/src/components/activities/flowchart/activity-walker.ts +++ b/src/designer/elsa-workflows-designer/src/components/activities/flowchart/activity-walker.ts @@ -18,13 +18,10 @@ export interface ActivityPort { } export function walkActivities(root: Activity, descriptors: Array): ActivityNode { - // Create a copy of the root to avoid transposing its outbound properties. - const rootCopy = {...root}; - - const collectedActivities = new Set([rootCopy]); + const collectedActivities = new Set([root]); const graph: ActivityNode = {activity: root, parents: [], children: []}; const collectedNodes = new Set([graph]); - walkRecursive(graph, rootCopy, collectedActivities, collectedNodes, descriptors); + walkRecursive(graph, root, collectedActivities, collectedNodes, descriptors); return graph; } @@ -68,6 +65,7 @@ function getPorts(node: ActivityNode, activity: Activity, descriptors: Array x.activityType == activity.typeName); - const untransposedConnections = transposeHandler.untranspose({activity, activityDescriptor}); + const activityCopy: Activity = {...activity}; + const untransposedConnections = transposeHandler.untranspose({activity: activityCopy, activityDescriptor}); return untransposedConnections.map(x => ({activity: x.target, port: x.sourcePort})); }