From 2360fb293b9b19f9c4c2aa15029bc83a9c10fa75 Mon Sep 17 00:00:00 2001 From: StyleZhang Date: Fri, 8 Mar 2024 11:26:36 +0800 Subject: [PATCH] update data --- web/app/components/workflow/hooks.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/web/app/components/workflow/hooks.ts b/web/app/components/workflow/hooks.ts index 508e043dfe..204be61405 100644 --- a/web/app/components/workflow/hooks.ts +++ b/web/app/components/workflow/hooks.ts @@ -1,6 +1,7 @@ import { useCallback } from 'react' import { useTranslation } from 'react-i18next' import produce from 'immer' +import { debounce } from 'lodash-es' import type { EdgeMouseHandler, NodeDragHandler, @@ -50,7 +51,7 @@ export const useWorkflow = () => { const nodesInitialData = useNodesInitialData() const featuresStore = useFeaturesStore() - const handleSyncWorkflowDraft = useCallback(() => { + const handleSyncWorkflowDraft = useCallback(debounce(() => { const { getNodes, edges, @@ -83,7 +84,7 @@ export const useWorkflow = () => { useStore.setState({ draftUpdatedAt: res.updated_at }) }) } - }, [store, reactFlow, featuresStore]) + }, 2000, { trailing: true }), [store, reactFlow, featuresStore]) const handleLayout = useCallback(async () => { const { @@ -288,7 +289,8 @@ export const useWorkflow = () => { currentNode.data = { ...currentNode.data, ...data } }) setNodes(newNodes) - }, [store]) + handleSyncWorkflowDraft() + }, [store, handleSyncWorkflowDraft]) const handleNodeAddNext = useCallback(( currentNodeId: string,