From 686bd63836bf26e5e25fc9451189b1feb8788c19 Mon Sep 17 00:00:00 2001 From: LuqP2 Date: Sat, 27 Jun 2026 14:33:34 -0300 Subject: [PATCH] fix: sync save node ctas in subgraphs --- js/metahub_save_cta.js | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/js/metahub_save_cta.js b/js/metahub_save_cta.js index bd0ca5d..43f897e 100644 --- a/js/metahub_save_cta.js +++ b/js/metahub_save_cta.js @@ -133,11 +133,34 @@ function syncMetaHubCTA(node) { } } -function syncAllMetaHubCTAs() { - for (const node of app.graph?._nodes ?? []) { - syncMetaHubCTA(node); +function getGraphNodes(graph) { + if (Array.isArray(graph?._nodes)) { + return graph._nodes; } + if (Array.isArray(graph?.nodes)) { + return graph.nodes; + } + + return []; +} + +function walkGraphNodes(graph, visitor, visitedGraphs = new Set()) { + if (!graph || visitedGraphs.has(graph)) { + return; + } + + visitedGraphs.add(graph); + + for (const node of getGraphNodes(graph)) { + visitor(node); + walkGraphNodes(node?.subgraph, visitor, visitedGraphs); + } +} + +function syncAllMetaHubCTAs() { + walkGraphNodes(app.graph, syncMetaHubCTA); + app.graph?.setDirtyCanvas?.(true, true); }