diff --git a/src/pages/VisProgPage/VisProg.tsx b/src/pages/VisProgPage/VisProg.tsx index c579c6c..54ad43c 100644 --- a/src/pages/VisProgPage/VisProg.tsx +++ b/src/pages/VisProgPage/VisProg.tsx @@ -109,9 +109,20 @@ function VisualProgrammingUI() { // currently outputs the prepared program to the console function runProgram() { - const program = graphReducer(); - console.log(program); + const phases = graphReducer(); + const program = {phases} console.log(JSON.stringify(program, null, 2)); + fetch( + "http://localhost:8000/program", + { + method: "POST", + headers: {"Content-Type": "application/json"}, + body: JSON.stringify(program), + } + ).then((res) => { + if (!res.ok) throw new Error("Failed communicating with the backend.") + console.log("Successfully sent the program to the backend."); + }).catch(() => console.log("Failed to send program to the backend.")); } /** diff --git a/src/pages/VisProgPage/visualProgrammingUI/nodes/TriggerNode.tsx b/src/pages/VisProgPage/visualProgrammingUI/nodes/TriggerNode.tsx index a6f114e..e60d954 100644 --- a/src/pages/VisProgPage/visualProgrammingUI/nodes/TriggerNode.tsx +++ b/src/pages/VisProgPage/visualProgrammingUI/nodes/TriggerNode.tsx @@ -67,19 +67,29 @@ export default function TriggerNode(props: NodeProps) { /** * Reduces each Trigger, including its children down into its relevant data. - * @param node: The Node Properties of this node. - * @param nodes: all the nodes in the graph. + * @param node The Node Properties of this node. + * @param nodes all the nodes in the graph. */ -export function TriggerReduce(node: Node, nodes: Node[]) { +export function TriggerReduce(node: TriggerNode, nodes: Node[]) { // Replace this for nodes functionality if (nodes.length <= -1) { console.warn("Impossible nodes length in TriggerReduce") } - const data = node.data as TriggerNodeData; - return { - label: data.label, - list: data.triggers, - } + const data = node.data; + switch (data.triggerType) { + case "keywords": + return { + id: node.id, + type: "keywords", + label: data.label, + keywords: data.triggers, + }; + default: + return { + ...data, + id: node.id, + }; + } } /**