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 store = useStoreApi()
const { setNodes: collabSetNodes, setEdges: collabSetEdges } = collaborationManager 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 { getNodes, setNodes: reactFlowSetNodes } = store.getState()
const oldNodes = getNodes() if (shouldBroadcast) {
collabSetNodes(oldNodes, newNodes) const oldNodes = getNodes()
collabSetNodes(oldNodes, newNodes)
}
reactFlowSetNodes(newNodes) reactFlowSetNodes(newNodes)
}, [store, collabSetNodes]) }, [store, collabSetNodes])
const setEdges = useCallback((newEdges: Edge[]) => { const setEdges = useCallback((newEdges: Edge[], shouldBroadcast: boolean = true) => {
const { edges, setEdges: reactFlowSetEdges } = store.getState() const { edges, setEdges: reactFlowSetEdges } = store.getState()
collabSetEdges(edges, newEdges) if (shouldBroadcast)
collabSetEdges(edges, newEdges)
reactFlowSetEdges(newEdges) reactFlowSetEdges(newEdges)
}, [store, collabSetEdges]) }, [store, collabSetEdges])

View File

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