diff --git a/src/pages/VisProgPage/visualProgrammingUI/nodes/TriggerNode.default.ts b/src/pages/VisProgPage/visualProgrammingUI/nodes/TriggerNode.default.ts index 2a63661..9c1b92f 100644 --- a/src/pages/VisProgPage/visualProgrammingUI/nodes/TriggerNode.default.ts +++ b/src/pages/VisProgPage/visualProgrammingUI/nodes/TriggerNode.default.ts @@ -5,6 +5,7 @@ import type { TriggerNodeData } from "./TriggerNode"; */ export const TriggerNodeDefaults: TriggerNodeData = { label: "Trigger Node", + name: "", droppable: true, hasReduce: true, }; \ No newline at end of file diff --git a/src/pages/VisProgPage/visualProgrammingUI/nodes/TriggerNode.tsx b/src/pages/VisProgPage/visualProgrammingUI/nodes/TriggerNode.tsx index aa44cef..9b47bd4 100644 --- a/src/pages/VisProgPage/visualProgrammingUI/nodes/TriggerNode.tsx +++ b/src/pages/VisProgPage/visualProgrammingUI/nodes/TriggerNode.tsx @@ -16,6 +16,7 @@ import { BasicBeliefReduce } from './BasicBeliefNode'; import type { GoalNode } from './GoalNode.tsx'; import { defaultPlan } from '../components/Plan.default.ts'; import { deleteGoalInPlanByID, insertGoalInPlan } from '../components/PlanEditingFunctions.tsx'; +import { TextField } from '../../../../components/TextField.tsx'; /** * The default data structure for a Trigger node @@ -29,6 +30,7 @@ import { deleteGoalInPlanByID, insertGoalInPlan } from '../components/PlanEditin */ export type TriggerNodeData = { label: string; + name: string; droppable: boolean; condition?: string; // id of the belief plan?: Plan; @@ -58,10 +60,20 @@ export function TriggerNodeCanConnect(connection: Connection | Edge): boolean { export default function TriggerNode(props: NodeProps) { const data = props.data; const {updateNodeData} = useFlowStore(); + + const setName= (value: string) => { + updateNodeData(props.id, {...data, name: value}) + } return <> +
+ setName(val)} + placeholder={"Name of this trigger..."} + />
Triggers when the condition is met.
Condition/ Belief is currently {data.condition ? "" : "not"} set. {data.condition ? "🟢" : "🔴"}
Plan{data.plan ? (": " + data.plan.name) : ""} is currently {data.plan ? "" : "not"} set. {data.plan ? "🟢" : "🔴"}
@@ -113,6 +125,7 @@ export function TriggerReduce(node: Node, nodes: Node[]) { const conditionData = conditionNode ? BasicBeliefReduce(conditionNode, nodes) : "" return { id: node.id, + name: node.data.name, condition: conditionData, // Make sure we have a condition before reducing, or default to "" plan: !data.plan ? "" : PlanReduce(nodes, data.plan), // Make sure we have a plan when reducing, or default to "" } diff --git a/test/pages/visProgPage/visualProgrammingUI/nodes/TriggerNode.test.tsx b/test/pages/visProgPage/visualProgrammingUI/nodes/TriggerNode.test.tsx index b850fa0..9b6bd1d 100644 --- a/test/pages/visProgPage/visualProgrammingUI/nodes/TriggerNode.test.tsx +++ b/test/pages/visProgPage/visualProgrammingUI/nodes/TriggerNode.test.tsx @@ -73,7 +73,8 @@ describe('TriggerNode', () => { data: { ...JSON.parse(JSON.stringify(TriggerNodeDefaults)), condition: "belief-1", - plan: defaultPlan + plan: defaultPlan, + name: "trigger-1" }, }; @@ -93,6 +94,7 @@ describe('TriggerNode', () => { expect(result).toEqual({ id: 'trigger-1', + name: "trigger-1", condition: { id: "belief-1", keyword: "",