From 0474937e57600464e247150ef5600cddc0ca3b6c Mon Sep 17 00:00:00 2001 From: kjs Date: Mon, 10 Nov 2025 14:46:30 +0900 Subject: [PATCH] =?UTF-8?q?wip:=20gridInfo=20=EC=9D=98=EC=A1=B4=EC=84=B1?= =?UTF-8?q?=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/components/screen/ScreenDesigner.tsx | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/frontend/components/screen/ScreenDesigner.tsx b/frontend/components/screen/ScreenDesigner.tsx index 981cb66d..980f31f7 100644 --- a/frontend/components/screen/ScreenDesigner.tsx +++ b/frontend/components/screen/ScreenDesigner.tsx @@ -504,7 +504,7 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD // gridColumns 변경 시 크기 자동 업데이트 if (path === "gridColumns" && gridInfo) { - const updatedSize = updateSizeFromGridColumns(newComp, gridInfo, layout.gridSettings as GridUtilSettings); + const updatedSize = updateSizeFromGridColumns(newComp, layout.gridSettings as GridUtilSettings); newComp.size = updatedSize; } @@ -659,7 +659,7 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD return newLayout; }); }, - [gridInfo, saveToHistory], // 🔧 layout, selectedComponent 제거! + [saveToHistory], ); // 컴포넌트 시스템 초기화 @@ -1425,7 +1425,11 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD // 격자 스냅 적용 const finalPosition = layout.gridSettings?.snapToGrid && currentGridInfo - ? snapPositionTo10px({ x: absoluteX, y: absoluteY, z: 1 }, currentGridInfo, layout.gridSettings as GridUtilSettings) + ? snapPositionTo10px( + { x: absoluteX, y: absoluteY, z: 1 }, + currentGridInfo, + layout.gridSettings as GridUtilSettings, + ) : { x: absoluteX, y: absoluteY, z: 1 }; if (templateComp.type === "container") { @@ -1782,7 +1786,7 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD toast.success(`${template.name} 템플릿이 추가되었습니다.`); }, - [layout, gridInfo, selectedScreen, snapToGrid, saveToHistory], + [layout, selectedScreen, snapToGrid, saveToHistory], ); // 레이아웃 드래그 처리 @@ -1852,7 +1856,7 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD toast.success(`${layoutData.label} 레이아웃이 추가되었습니다.`); }, - [layout, gridInfo, screenResolution, snapToGrid, saveToHistory, zoomLevel], + [layout, screenResolution, snapToGrid, saveToHistory, zoomLevel], ); // handleZoneComponentDrop은 handleComponentDrop으로 대체됨 @@ -1997,7 +2001,11 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD // 격자 스냅 적용 const snappedPosition = layout.gridSettings?.snapToGrid && currentGridInfo - ? snapPositionTo10px({ x: boundedX, y: boundedY, z: 1 }, currentGridInfo, layout.gridSettings as GridUtilSettings) + ? snapPositionTo10px( + { x: boundedX, y: boundedY, z: 1 }, + currentGridInfo, + layout.gridSettings as GridUtilSettings, + ) : { x: boundedX, y: boundedY, z: 1 }; console.log("🧩 컴포넌트 드롭:", { @@ -2111,7 +2119,7 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD // gridColumns에 맞는 정확한 너비 계산 const calculatedWidth = calculateWidthFromColumns( gridColumns, - gridInfo, + layout.gridSettings as GridUtilSettings, ); @@ -2209,7 +2217,7 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD toast.success(`${component.name} 컴포넌트가 추가되었습니다.`); }, - [layout, gridInfo, selectedScreen, snapToGrid, saveToHistory], + [layout, selectedScreen, snapToGrid, saveToHistory], ); // 드래그 앤 드롭 처리 @@ -2670,7 +2678,7 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD // console.error("드롭 처리 실패:", error); } }, - [layout, gridInfo, saveToHistory], + [layout, saveToHistory], ); // 파일 컴포넌트 업데이트 처리 @@ -3109,7 +3117,7 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD justFinishedDrag: false, })); }, 100); - }, [dragState, layout, gridInfo, saveToHistory]); + }, [dragState, layout, saveToHistory]); // 드래그 선택 시작 const startSelectionDrag = useCallback( @@ -3774,7 +3782,7 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD toast.success(`그룹이 생성되었습니다 (${finalChildren.length}개 컴포넌트)`); }, - [layout, saveToHistory, gridInfo], + [layout, saveToHistory], ); // 그룹 생성 함수 (다이얼로그 표시)