From 67b70ab5caa0a5f3d79c7c1d5e44b95fdd58f328 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Tue, 23 Jan 2024 15:30:38 -0300 Subject: [PATCH] Add buildFlow function to useFlowStore --- src/frontend/src/stores/flowStore.ts | 34 +++++++++++++++++ src/frontend/src/stores/flowsIOStore.ts | 51 ------------------------- 2 files changed, 34 insertions(+), 51 deletions(-) delete mode 100644 src/frontend/src/stores/flowsIOStore.ts diff --git a/src/frontend/src/stores/flowStore.ts b/src/frontend/src/stores/flowStore.ts index 08ea40348..5db649e4e 100644 --- a/src/frontend/src/stores/flowStore.ts +++ b/src/frontend/src/stores/flowStore.ts @@ -16,6 +16,7 @@ import { targetHandleType, } from "../types/flow"; import { FlowStoreType } from "../types/zustand/flow"; +import { buildVertices } from "../utils/buildUtils"; import { cleanEdges, getHandleId, @@ -25,6 +26,7 @@ import { scapeJSONParse, scapedJSONStringfy, } from "../utils/reactflowUtils"; +import useAlertStore from "./alertStore"; import useFlowsManagerStore from "./flowsManagerStore"; // this is our useStore hook that we can use in our components to get parts of the store and call actions @@ -393,6 +395,38 @@ const useFlowStore = create((set, get) => ({ set({ outputIds }); return outputIds; }, + buildFlow: async (nodeId?: string) => { + function handleBuildUpdate(data: any) { + get().addDataToFlowPool(data.data[data.id], data.id); + } + const currentFlow = useFlowsManagerStore((state) => state.currentFlow); + const setSuccessData = useAlertStore((state) => state.setSuccessData); + const setErrorData = useAlertStore((state) => state.setErrorData); + return buildVertices({ + flow: { + data: { + edges: get().edges, + nodes: get().nodes, + viewport: get().reactFlowInstance?.getViewport()!, + }, + description: currentFlow?.description!, + id: currentFlow?.id!, + name: currentFlow?.name!, + }, + nodeId, + onBuildComplete: () => { + if (nodeId) { + setSuccessData({ title: `${nodeId} built successfully` }); + } else { + setSuccessData({ title: `Flow built successfully` }); + } + }, + onBuildUpdate: handleBuildUpdate, + onBuildError: (title, list) => { + setErrorData({ list, title }); + }, + }); + }, })); export default useFlowStore; diff --git a/src/frontend/src/stores/flowsIOStore.ts b/src/frontend/src/stores/flowsIOStore.ts deleted file mode 100644 index a977ba9ca..000000000 --- a/src/frontend/src/stores/flowsIOStore.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { create } from "zustand"; -import useAlertStore from "./alertStore"; -import useFlowStore from "./flowStore"; -import useFlowsManagerStore from "./flowsManagerStore"; -/* const { getNodeId, saveFlow } = useContext(FlowsContext); -const { setErrorData, setNoticeData } = useContext(alertContext); */ - -const { reactFlowInstance, paste } = useFlowStore(); -const { saveFlow } = useFlowsManagerStore(); -const { setErrorData, setNoticeData } = useAlertStore(); - -const useFlowIOStore = create((set, get) => ({ - /* buildFlow: async (nodeId?: string) => { - function handleBuildUpdate(data: any) { - get().addDataToFlowPool(data.data[data.id], data.id); - } - console.log( - "building flow before save", - JSON.parse(JSON.stringify(get().actualFlow)) - ); - console.log(saveFlow); - await saveFlow( - { ...get().actualFlow!, data: reactFlowInstance!.toObject()! }, - true - ); - console.log( - "building flow AFTER save", - JSON.parse(JSON.stringify(get().actualFlow)) - ); - return buildVertices({ - flow: { - data: reactFlowInstance?.toObject()!, - description: get().actualFlow!.description, - id: get().actualFlow!.id, - name: get().actualFlow!.name, - }, - nodeId, - onBuildComplete: () => { - if (nodeId) { - setNoticeData({ title: `${nodeId} built successfully` }); - } - }, - onBuildUpdate: handleBuildUpdate, - onBuildError: (title, list) => { - setErrorData({ list, title }); - }, - }); - }, */ -})); - -export default useFlowIOStore;