some operations don't need to broadcast

This commit is contained in:
hjlarry 2025-08-03 14:18:48 +08:00
parent 348fd18230
commit 494e223706
2 changed files with 15 additions and 11 deletions

View File

@ -7,16 +7,20 @@ export const useCollaborativeWorkflow = () => {
const store = useStoreApi()
const { setNodes: collabSetNodes, setEdges: collabSetEdges } = collaborationManager
const setNodes = useCallback((newNodes: Node[]) => {
const setNodes = useCallback((newNodes: Node[], shouldBroadcast: boolean = true) => {
const { getNodes, setNodes: reactFlowSetNodes } = store.getState()
const oldNodes = getNodes()
collabSetNodes(oldNodes, newNodes)
if (shouldBroadcast) {
const oldNodes = getNodes()
collabSetNodes(oldNodes, newNodes)
}
reactFlowSetNodes(newNodes)
}, [store, collabSetNodes])
const setEdges = useCallback((newEdges: Edge[]) => {
const setEdges = useCallback((newEdges: Edge[], shouldBroadcast: boolean = true) => {
const { edges, setEdges: reactFlowSetEdges } = store.getState()
collabSetEdges(edges, newEdges)
if (shouldBroadcast)
collabSetEdges(edges, newEdges)
reactFlowSetEdges(newEdges)
}, [store, collabSetEdges])

View File

@ -214,7 +214,7 @@ export const useNodesInteractions = () => {
n.data._isEntering = true
})
})
setNodes(newNodes)
setNodes(newNodes, false)
}
}
const newEdges = produce(edges, (draft) => {
@ -226,7 +226,7 @@ export const useNodesInteractions = () => {
currentEdge.data._connectedNodeIsHovering = true
})
})
setEdges(newEdges)
setEdges(newEdges, false)
const connectedEdges = getConnectedEdges([node], edges).filter(edge => edge.target === node.id)
const targetNodes: Node[] = []
@ -242,7 +242,7 @@ export const useNodesInteractions = () => {
n.data._inParallelHovering = true
})
})
setNodes(newNodes)
setNodes(newNodes, false)
}
}, [store, workflowStore, getNodesReadOnly])
@ -268,14 +268,14 @@ export const useNodesInteractions = () => {
node.data._inParallelHovering = false
})
})
setNodes(newNodes)
setNodes(newNodes, false)
const newEdges = produce(edges, (draft) => {
draft.forEach((edge) => {
if (edge.data)
edge.data._connectedNodeIsHovering = false
})
})
setEdges(newEdges)
setEdges(newEdges, false)
}, [store, workflowStore, getNodesReadOnly])
const handleNodeSelect = useCallback((nodeId: string, cancelSelection?: boolean, initShowLastRunTab?: boolean) => {
@ -483,7 +483,7 @@ export const useNodesInteractions = () => {
}
})
})
setNodes(newNodes)
setNodes(newNodes, false)
setShowAssignVariablePopup({
nodeId: fromNode.id,
nodeData: fromNode.data,