feat(canvas): implement multi-image resize behavior to prevent nested updates during resizing

This commit is contained in:
HouYunFei
2026-08-06 12:23:01 +08:00
parent ae327e9315
commit 2e27ecb839
5 changed files with 8 additions and 3 deletions
+1 -2
View File
@@ -288,9 +288,8 @@ export const CanvasNode = React.memo(function CanvasNode({
return () => {
window.removeEventListener("mousemove", handleResizeMove);
window.removeEventListener("mouseup", handleResizeUp);
if (resizeRef.current.isResizing) onResizeEnd(data.id);
};
}, [data.id, handleResizeMove, handleResizeUp, onResizeEnd]);
}, [handleResizeMove, handleResizeUp]);
return (
<div
+4 -1
View File
@@ -1427,7 +1427,10 @@ function InfiniteCanvasPage() {
setNodes((prev) => prev.map((node) => (node.id === nodeId ? { ...node, width, height, position: position || node.position } : node)));
}, []);
const handleNodeResizeStart = useCallback(() => setIsNodeResizing(true), []);
const handleNodeResizeStart = useCallback(() => {
setIsNodeResizing(true);
setExpandedImageNodeId(null);
}, []);
const handleNodeResizeEnd = useCallback(() => setIsNodeResizing(false), []);
const toggleNodeFreeResize = useCallback((nodeId: string) => {