From d8528ed54de0dee577d8a4a0319e687dbb060952 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Mon, 23 Feb 2026 14:08:15 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20[esign]=20=EA=B7=B8=EB=A3=B9=20=EB=93=9C?= =?UTF-8?q?=EB=9E=98=EA=B7=B8=20=ED=9B=84=20=EC=84=A0=ED=83=9D=20=ED=95=B4?= =?UTF-8?q?=EC=A0=9C=EB=90=98=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 드래그 완료 후 click 이벤트에서 선택 변경 무시 - 여백 클릭 시에만 그룹 선택 해제 --- resources/views/esign/template-fields.blade.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/resources/views/esign/template-fields.blade.php b/resources/views/esign/template-fields.blade.php index a2f24aac..684ba4a2 100644 --- a/resources/views/esign/template-fields.blade.php +++ b/resources/views/esign/template-fields.blade.php @@ -134,6 +134,7 @@ className={`w-full relative rounded border-2 transition-all ${p === currentPage const FieldOverlay = ({ field, index, selected, signerCount, containerRef, onSelect, onUpdate, onDragEnd, gridEnabled, selectedIndices, onGroupMove }) => { const fieldRef = useRef(null); const [resizeMode, setResizeMode] = useState(false); + const draggedRef = useRef(false); const latestRef = useRef({ field, index, onUpdate, onDragEnd, selectedIndices, onGroupMove }); latestRef.current = { field, index, onUpdate, onDragEnd, selectedIndices, onGroupMove }; @@ -205,6 +206,7 @@ className={`w-full relative rounded border-2 transition-all ${p === currentPage modifiers, listeners: { move(event) { + draggedRef.current = true; const { field: f, index: idx, onUpdate: update, selectedIndices: si, onGroupMove: groupMove } = latestRef.current; const rect = containerRef.current.getBoundingClientRect(); const dx = (event.dx / rect.width) * 100; @@ -217,7 +219,10 @@ className={`w-full relative rounded border-2 transition-all ${p === currentPage update(idx, { position_x: round2(newX), position_y: round2(newY) }); } }, - end() { latestRef.current.onDragEnd(); }, + end() { + latestRef.current.onDragEnd(); + setTimeout(() => { draggedRef.current = false; }, 0); + }, }, }); } @@ -227,7 +232,7 @@ className={`w-full relative rounded border-2 transition-all ${p === currentPage return (
{ e.stopPropagation(); onSelect(index, e); }} + onClick={(e) => { e.stopPropagation(); if (draggedRef.current) return; onSelect(index, e); }} onDoubleClick={(e) => { e.stopPropagation(); onSelect(index, e); setResizeMode(prev => !prev); }} style={{ position: 'absolute',