From 2a352a67de170d111bf423be819ef59a8ff3b8fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20M=C3=B6ller?= Date: Tue, 7 Mar 2023 16:49:15 +0100 Subject: [PATCH] refactor(node-resizer): add keepAspectRatio to dependency array, cleanup drag handler --- packages/node-resizer/src/ResizeControl.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/node-resizer/src/ResizeControl.tsx b/packages/node-resizer/src/ResizeControl.tsx index 3da40e8c..27df1096 100644 --- a/packages/node-resizer/src/ResizeControl.tsx +++ b/packages/node-resizer/src/ResizeControl.tsx @@ -103,14 +103,12 @@ function ResizeControl({ } = startValues.current; const { x: prevX, y: prevY, width: prevWidth, height: prevHeight } = prevValues.current; + const distX = Math.floor(enableX ? xSnapped - startX : 0); const distY = Math.floor(enableY ? ySnapped - startY : 0); - let width = startWidth + (invertX ? -distX : distX); - let height = startHeight + (invertY ? -distY : distY); - - width = clamp(width, minWidth, maxWidth); - height = clamp(height, minHeight, maxHeight); + let width = clamp(startWidth + (invertX ? -distX : distX), minWidth, maxWidth); + let height = clamp(startHeight + (invertY ? -distY : distY), minHeight, maxHeight); if (keepAspectRatio) { const nextAspectRatio = width / height; @@ -207,7 +205,7 @@ function ResizeControl({ return () => { selection.on('.drag', null); }; - }, [id, controlPosition, minWidth, minHeight, maxWidth, maxHeight, getPointerPosition]); + }, [id, controlPosition, minWidth, minHeight, maxWidth, maxHeight, keepAspectRatio, getPointerPosition]); const positionClassNames = controlPosition.split('-'); const colorStyleProp = variant === ResizeControlVariant.Line ? 'borderColor' : 'backgroundColor';