Skip to content

Commit 71692d1

Browse files
committed
perf: disable mouse events in TouchBackend and optimize state updates for vision hover handlers
1 parent a49bab7 commit 71692d1

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/NodeCanvas.jsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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);

src/main.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ const HTML5toTouch = {
2525
id: 'touch',
2626
backend: TouchBackend,
2727
options: {
28-
enableMouseEvents: true,
28+
enableMouseEvents: false,
2929
delayTouchStart: 100,
3030
delayMouseStart: 0
3131
},

0 commit comments

Comments
 (0)