@@ -3242,6 +3242,7 @@ function NodeCanvas() {
32423242 const leftPanelRef = useRef(null); // Ref for Left Panel
32433243
32443244 const canvasWorker = useCanvasWorker();
3245+ console.log("NodeCanvas render hit", performance.now());
32453246 const isKeyboardZooming = useRef(false);
32463247 const resizeTimeoutRef = useRef(null);
32473248 // Ensure async zoom results apply in order to avoid ghost frames
@@ -5123,7 +5124,7 @@ function NodeCanvas() {
51235124
51245125 if (hoveredNode) {
51255126 const dims = baseDimsById.get(hoveredNode.id);
5126- setHoveredNodeForVision({
5127+ setHoveredNodeForVision(prev => prev?.id === hoveredNode.id ? prev : {
51275128 id: hoveredNode.id,
51285129 name: hoveredNode.name,
51295130 color: hoveredNode.color,
@@ -5288,7 +5289,7 @@ function NodeCanvas() {
52885289 }
52895290 }
52905291
5291- setHoveredConnectionForVision({
5292+ setHoveredConnectionForVision(prev => prev?.id === edge.id ? prev : {
52925293 id: edge.id,
52935294 name: connectionName,
52945295 color: connectionColor,
@@ -5319,7 +5320,11 @@ function NodeCanvas() {
53195320 }
53205321 }
53215322
5322- setHoveredEdgeInfo(foundHoveredEdgeInfo);
5323+ setHoveredEdgeInfo(prev => {
5324+ if (!prev && !foundHoveredEdgeInfo) return prev;
5325+ if (prev && foundHoveredEdgeInfo && prev.edgeId === foundHoveredEdgeInfo.edgeId) return prev;
5326+ return foundHoveredEdgeInfo;
5327+ });
53235328
53245329 if (!foundHoveredEdgeInfo) {
53255330 setHoveredConnectionForVision(null);
0 commit comments