From 7f2c7e4015584b6ee3947bcfc100994913f8497e Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Wed, 31 Dec 2025 16:34:47 +0330 Subject: [PATCH] fix select peykan --- .../editor/components/tools/ArrowShape.tsx | 50 ++++++++++++++++--- 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/src/pages/editor/components/tools/ArrowShape.tsx b/src/pages/editor/components/tools/ArrowShape.tsx index 7d65d9d..6362e9b 100644 --- a/src/pages/editor/components/tools/ArrowShape.tsx +++ b/src/pages/editor/components/tools/ArrowShape.tsx @@ -13,15 +13,23 @@ const ArrowShape = ({ obj, isSelected, transformerRef, onSelect, onUpdate, dragg } }, [isSelected, transformerRef]); + const startX = obj.x; + const startY = obj.y; + const endX = obj.width || 0; + const endY = obj.height || 0; + return ( { @@ -31,9 +39,39 @@ const ArrowShape = ({ obj, isSelected, transformerRef, onSelect, onUpdate, dragg }} onDragEnd={(e) => { const node = e.target; + const newX = node.x(); + const newY = node.y(); + const dx = endX - startX; + const dy = endY - startY; + onUpdate(obj.id, { - x: node.x(), - y: node.y(), + x: newX, + y: newY, + width: newX + dx, + height: newY + dy, + }); + }} + onTransformEnd={() => { + const node = shapeRef.current; + if (!node) return; + + const scaleX = node.scaleX(); + const scaleY = node.scaleY(); + + node.scaleX(1); + node.scaleY(1); + + const newX = node.x(); + const newY = node.y(); + const dx = (endX - startX) * scaleX; + const dy = (endY - startY) * scaleY; + + onUpdate(obj.id, { + x: newX, + y: newY, + rotation: node.rotation(), + width: newX + dx, + height: newY + dy, }); }} />