fix(canvas): stabilize node resizing by hiding toolbar during resize to prevent rendering issues

This commit is contained in:
HouYunFei
2026-08-03 11:37:19 +08:00
parent 8efd714221
commit 1e92157a23
4 changed files with 18 additions and 3 deletions
+9 -2
View File
@@ -44,7 +44,9 @@ type CanvasNodeProps = {
onHoverStart: (nodeId: string) => void;
onHoverEnd: (nodeId: string) => void;
onConnectStart: (event: React.MouseEvent, nodeId: string, handleType: "source" | "target") => void;
onResizeStart: (nodeId: string) => void;
onResize: (nodeId: string, width: number, height: number, position?: Position) => void;
onResizeEnd: (nodeId: string) => void;
onContentChange: (nodeId: string, content: string) => void;
onTitleChange: (nodeId: string, title: string) => void;
onToggleBatch?: (nodeId: string) => void;
@@ -105,7 +107,9 @@ export const CanvasNode = React.memo(function CanvasNode({
onHoverStart,
onHoverEnd,
onConnectStart,
onResizeStart,
onResize,
onResizeEnd,
onContentChange,
onTitleChange,
onToggleBatch,
@@ -261,11 +265,13 @@ export const CanvasNode = React.memo(function CanvasNode({
resizeRef.current.isResizing = false;
window.removeEventListener("mousemove", handleResizeMove);
window.removeEventListener("mouseup", handleResizeUp);
}, [handleResizeMove]);
onResizeEnd(data.id);
}, [data.id, handleResizeMove, onResizeEnd]);
const handleResizeMouseDown = (event: React.MouseEvent, corner: ResizeCorner) => {
event.stopPropagation();
event.preventDefault();
onResizeStart(data.id);
resizeRef.current = {
isResizing: true,
corner,
@@ -286,8 +292,9 @@ export const CanvasNode = React.memo(function CanvasNode({
return () => {
window.removeEventListener("mousemove", handleResizeMove);
window.removeEventListener("mouseup", handleResizeUp);
if (resizeRef.current.isResizing) onResizeEnd(data.id);
};
}, [handleResizeMove, handleResizeUp]);
}, [data.id, handleResizeMove, handleResizeUp, onResizeEnd]);
return (
<div