From 9aff34e8dee4cbe195405d65290447db4c750865 Mon Sep 17 00:00:00 2001 From: Nicole Rappe Date: Thu, 15 May 2025 00:58:21 -0600 Subject: [PATCH] Fixed Issues with Node Configuration Sidebar trying to use node label instead of "id" --- Data/Server/WebUI/src/Flow_Editor.jsx | 16 +++++++------- .../src/nodes/General Purpose/Node_Data.jsx | 21 +++++++------------ 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/Data/Server/WebUI/src/Flow_Editor.jsx b/Data/Server/WebUI/src/Flow_Editor.jsx index b37f479..f586d8e 100644 --- a/Data/Server/WebUI/src/Flow_Editor.jsx +++ b/Data/Server/WebUI/src/Flow_Editor.jsx @@ -43,17 +43,19 @@ export default function FlowEditor({ }) { // Node Configuration Sidebar State const [drawerOpen, setDrawerOpen] = useState(false); - const [selectedNodeLabel, setSelectedNodeLabel] = useState(null); + const [selectedNodeId, setSelectedNodeId] = useState(null); useEffect(() => { - window.BorealisOpenDrawer = (label) => { - setSelectedNodeLabel(label); + window.BorealisOpenDrawer = (id) => { + setSelectedNodeId(id); setDrawerOpen(true); }; return () => { delete window.BorealisOpenDrawer; }; - }, [nodes]); + }, []); + + const selectedNode = nodes.find((n) => n.id === selectedNodeId); const wrapperRef = useRef(null); const { project } = useReactFlow(); @@ -352,7 +354,6 @@ export default function FlowEditor({ if (nodeCountEl) nodeCountEl.innerText = nodes.length; }, [nodes]); - const selectedNode = nodes.find((n) => n.data?.label === selectedNodeLabel); const nodeDef = selectedNode ? Object.values(categorizedNodes).flat().find((def) => def.type === selectedNode.type) : null; @@ -367,11 +368,12 @@ export default function FlowEditor({ { size="small" onClick={() => window.BorealisOpenDrawer && - window.BorealisOpenDrawer(data?.label || "Unknown Node", { ...data, nodeId: id }) + window.BorealisOpenDrawer(id, { ...data, nodeId: id }) } sx={{ padding: 0, marginRight: "-3px", color: "#58a6ff", width: "20px", height: "20px" }} > @@ -88,19 +88,14 @@ export default { { key: "value", label: "Value", type: "text" } ], usage_documentation: ` -### DataNode Usage +### Description: +This node acts as a basic live data emitter. When connected to an upstream node, it inherits its value, otherwise it accepts user-defined input of either a number or a string. -This node acts as a live data emitter. When connected to an upstream source, it inherits its value. Otherwise, it accepts user-defined input. +**Acceptable Inputs**: +- **Static Value** (*Number or String*) -- **Use Cases**: - - Static constants - - Pass-through conduit - - Manual value input - -- **Behavior**: - - Automatically updates on interval - - Emits data through BorealisValueBus - -Ensure no input edge if manual input is required. +**Behavior**: +- **Pass-through Conduit** (*If Upstream Node is Connected*) > Value cannot be manually changed while connected to an upstream node. +- Uses global Borealis "**Update Rate**" for updating value if connected to an upstream node. `.trim() };