From 9ae4b0bb8f5800148cd1a699db69f06f8a7a660b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20P=2E?= Date: Mon, 18 May 2026 12:40:25 +0200 Subject: [PATCH] Fix node status sync error (WIP) TODO: Use Map object to optimize node lookup --- js/controllers/menu_controller.js | 11 ++++++++++- scenes/ssgp/index.js | 7 ++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/js/controllers/menu_controller.js b/js/controllers/menu_controller.js index d2f1237..5a30e92 100644 --- a/js/controllers/menu_controller.js +++ b/js/controllers/menu_controller.js @@ -28,6 +28,9 @@ export default class extends Controller { * @param {Event} event */ toggleNode(event) { + + console.debug(AppState.treeNodes); + /** * The node's id * @type {string} @@ -60,15 +63,21 @@ export default class extends Controller { */ #toggleGroup(groupNode, status) { for (const child of groupNode.children) { + child.active = status; if (child.model) { ATON.getSceneNode(child.id).toggle(status); - child.active = status; } if (child.children.length > 0) { this.#toggleGroup(child, status); } } } + /** + * Toggles checkboxes in a group based on status + * @param {Object} groupNode + * @param {Boolean} status + * @param {HTMLElement} container + */ #syncGroupCheckboxes(groupNode, status, container) { for (const child of groupNode.children) { const checkbox = container.querySelector( diff --git a/scenes/ssgp/index.js b/scenes/ssgp/index.js index d8154da..b05f4b8 100644 --- a/scenes/ssgp/index.js +++ b/scenes/ssgp/index.js @@ -8,9 +8,10 @@ initStimulus(); AppState.currentScene = 'ssgp'; const marker = config.markers.find(m => m.id === 'ssgp'); -AppState.normalizedNodes = normalizeNodes(marker.nodes).flat; -AppState.treeNodes = normalizeNodes(marker.nodes).tree; +const {flat, tree} = normalizeNodes(marker.nodes); +AppState.normalizedNodes = flat; +AppState.treeNodes = tree; -//console.debug(AppState.treeNodes); +// TODO: add Map object for lookup optimization openScene(marker, AppState.normalizedNodes);