mirror of
https://github.com/basketikun/infinite-canvas.git
synced 2026-08-06 01:14:36 +08:00
fix(canvas): stabilize node resizing by hiding toolbar during resize to prevent rendering issues
This commit is contained in:
@@ -241,6 +241,7 @@ function InfiniteCanvasPage() {
|
||||
const [collapsingBatchIds, setCollapsingBatchIds] = useState<Set<string>>(new Set());
|
||||
const [openingBatchIds, setOpeningBatchIds] = useState<Set<string>>(new Set());
|
||||
const [isNodeDragging, setIsNodeDragging] = useState(false);
|
||||
const [isNodeResizing, setIsNodeResizing] = useState(false);
|
||||
const [dropTargetGroupId, setDropTargetGroupId] = useState<string | null>(null);
|
||||
|
||||
const nodesRef = useRef(nodes);
|
||||
@@ -1463,6 +1464,9 @@ function InfiniteCanvasPage() {
|
||||
setNodes((prev) => prev.map((node) => (node.id === nodeId ? { ...node, width, height, position: position || node.position } : node)));
|
||||
}, []);
|
||||
|
||||
const handleNodeResizeStart = useCallback(() => setIsNodeResizing(true), []);
|
||||
const handleNodeResizeEnd = useCallback(() => setIsNodeResizing(false), []);
|
||||
|
||||
const toggleNodeFreeResize = useCallback((nodeId: string) => {
|
||||
setNodes((prev) =>
|
||||
prev.map((node) => {
|
||||
@@ -2871,7 +2875,9 @@ function InfiniteCanvasPage() {
|
||||
onHoverStart={handleNodeHoverStart}
|
||||
onHoverEnd={handleNodeHoverEnd}
|
||||
onConnectStart={handleConnectStart}
|
||||
onResizeStart={handleNodeResizeStart}
|
||||
onResize={handleNodeResize}
|
||||
onResizeEnd={handleNodeResizeEnd}
|
||||
onContentChange={handleNodeContentChange}
|
||||
onTitleChange={handleNodeTitleChange}
|
||||
onToggleBatch={toggleBatchExpanded}
|
||||
@@ -2910,7 +2916,7 @@ function InfiniteCanvasPage() {
|
||||
</InfiniteCanvas>
|
||||
|
||||
<CanvasNodeHoverToolbar
|
||||
node={isNodeDragging || nodeImageSettingsOpen ? null : toolbarNode}
|
||||
node={isNodeDragging || isNodeResizing || nodeImageSettingsOpen ? null : toolbarNode}
|
||||
viewport={viewport}
|
||||
extraTools={toolbarNode ? buildNodeToolbarItems(toolbarNode) : undefined}
|
||||
onKeep={keepNodeToolbar}
|
||||
|
||||
Reference in New Issue
Block a user