From 3d9bc265dde7a21f0e6aad83b89af967b10302cc Mon Sep 17 00:00:00 2001 From: GogoVega <92022724+GogoVega@users.noreply.github.com> Date: Thu, 7 Nov 2024 21:58:11 +0100 Subject: [PATCH] Handle users of env config nodes when adding/removing subflow node --- .../@node-red/editor-client/src/js/nodes.js | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/packages/node_modules/@node-red/editor-client/src/js/nodes.js b/packages/node_modules/@node-red/editor-client/src/js/nodes.js index 12e0a6ef1..ace560f4a 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/nodes.js +++ b/packages/node_modules/@node-red/editor-client/src/js/nodes.js @@ -809,6 +809,20 @@ RED.nodes = (function() { if (sf) { sf.instances.splice(sf.instances.indexOf(node),1); } + + node.env?.forEach((prop) => { + if (prop.type === "conf-type" && prop.value) { + // Remove the node from the config node users + const configNode = getNode(prop.value); + if (configNode) { + if (configNode.users.indexOf(node) !== -1) { + configNode.users.splice(configNode.users.indexOf(node), 1); + RED.events.emit('nodes:change', configNode); + updatedConfigNode = true; + } + } + } + }); } if (updatedConfigNode) { @@ -2684,6 +2698,22 @@ RED.nodes = (function() { } } } + + // Subflows can have config node env + if (n.type.indexOf("subflow:") === 0) { + n.env?.forEach((prop) => { + if (prop.type === "conf-type" && prop.value) { + // Add the node to the config node users + const configNode = getNode(prop.value); + if (configNode) { + if (configNode.users.indexOf(n) === -1) { + configNode.users.push(n); + RED.events.emit('nodes:change', configNode); + } + } + } + }); + } } function flowVersion(version) {