From 856ccbd6aa34bbee7fc86a7b06effdb4ee8a4a53 Mon Sep 17 00:00:00 2001 From: ali asaria <aliasaria@users.noreply.github.com> Date: Thu, 27 Feb 2025 14:53:59 -0500 Subject: [PATCH] placeholder for saving updated nodes --- .../Experiment/Workflows/WorkflowCanvas.tsx | 21 ++++++++++++++++++- src/renderer/lib/transformerlab-api-sdk.ts | 9 ++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/renderer/components/Experiment/Workflows/WorkflowCanvas.tsx b/src/renderer/components/Experiment/Workflows/WorkflowCanvas.tsx index 2ae4b59a..b4635812 100644 --- a/src/renderer/components/Experiment/Workflows/WorkflowCanvas.tsx +++ b/src/renderer/components/Experiment/Workflows/WorkflowCanvas.tsx @@ -10,7 +10,7 @@ import { useReactFlow, } from '@xyflow/react'; import { PlusCircleIcon } from 'lucide-react'; -import { useEffect } from 'react'; +import { useCallback, useEffect } from 'react'; import CustomNode from './CustomNode'; import * as chatAPI from '../../../lib/transformerlab-api-sdk'; import { mutate } from 'swr'; @@ -121,12 +121,31 @@ const Flow = ({ return () => clearTimeout(timer); }, [reactFlowInstance, selectedWorkflow]); + const onNodeDragStop = useCallback(async (event, node) => { + // Save all current node positions + const allCurrentPositions = nodes.map((n) => ({ + id: n.id, + position: n.position, + })); + + // Save to your backend or storage + // for (const node of allCurrentPositions) { + // console.log('update node: ' + node?.id); + // await fetch( + // chatAPI.Endpoints.Workflows.UpdateNode(workflowId, node?.id, { + // position: node.position, + // }) + // ); + // } + }, []); + return ( <ReactFlow nodes={nodes} edges={edges} onNodesChange={onNodesChange} onEdgesChange={onEdgesChange} + onNodeDragStop={onNodeDragStop} nodeTypes={nodeTypes} fitView zoomOnScroll={false} diff --git a/src/renderer/lib/transformerlab-api-sdk.ts b/src/renderer/lib/transformerlab-api-sdk.ts index 2ca6ce52..ac7f3244 100644 --- a/src/renderer/lib/transformerlab-api-sdk.ts +++ b/src/renderer/lib/transformerlab-api-sdk.ts @@ -1033,6 +1033,15 @@ Endpoints.Workflows = { workflowId + '&node_id=' + nodeId, + UpdateNode: (workflowId: string, nodeId: string, node: string) => + API_URL() + + 'workflows/update_node' + + '?workflow_id=' + + workflowId + + '&node_id=' + + nodeId + + '&node=' + + node, RunWorkflow: (workflowId: string) => API_URL() + 'workflows/start/' + workflowId, }; -- GitLab