feat: 파일 미리보기 및 동적 컴포넌트 조정 기능 추가
- 파일 미리보기 API에 공개 접근을 허용하여 인증되지 않은 사용자도 이미지 미리보기를 할 수 있도록 수정하였습니다. - ScreenModal 컴포넌트에서 숨겨진 컴포넌트의 동적 y 좌표 조정 로직을 추가하여 사용자 인터페이스의 일관성을 개선하였습니다. - V2Media 및 V2Select 컴포넌트에서 기본값 설정 기능을 추가하여 사용자 경험을 향상시켰습니다. - RepeaterTable 및 SimpleRepeaterTableComponent에서 키 값을 개선하여 렌더링 성능을 최적화하였습니다. - formData의 디버깅 로그를 추가하여 개발 중 상태 확인을 용이하게 하였습니다.
This commit is contained in:
@@ -1623,55 +1623,16 @@ export default function ScreenDesigner({ selectedScreen, onBackToList, onScreenU
|
||||
};
|
||||
}, [MIN_ZOOM, MAX_ZOOM]);
|
||||
|
||||
// 격자 설정 업데이트 및 컴포넌트 자동 스냅
|
||||
// 격자 설정 업데이트 (컴포넌트 자동 조정 제거됨)
|
||||
const updateGridSettings = useCallback(
|
||||
(newGridSettings: GridSettings) => {
|
||||
const newLayout = { ...layout, gridSettings: newGridSettings };
|
||||
|
||||
// 격자 스냅이 활성화된 경우, 모든 컴포넌트를 새로운 격자에 맞게 조정
|
||||
if (newGridSettings.snapToGrid && screenResolution.width > 0) {
|
||||
// 새로운 격자 설정으로 격자 정보 재계산 (해상도 기준)
|
||||
const newGridInfo = calculateGridInfo(screenResolution.width, screenResolution.height, {
|
||||
columns: newGridSettings.columns,
|
||||
gap: newGridSettings.gap,
|
||||
padding: newGridSettings.padding,
|
||||
snapToGrid: newGridSettings.snapToGrid || false,
|
||||
});
|
||||
|
||||
const gridUtilSettings = {
|
||||
columns: newGridSettings.columns,
|
||||
gap: newGridSettings.gap,
|
||||
padding: newGridSettings.padding,
|
||||
snapToGrid: true, // 항상 10px 스냅 활성화
|
||||
};
|
||||
|
||||
const adjustedComponents = layout.components.map((comp) => {
|
||||
const snappedPosition = snapToGrid(comp.position, newGridInfo, gridUtilSettings);
|
||||
const snappedSize = snapSizeToGrid(comp.size, newGridInfo, gridUtilSettings);
|
||||
|
||||
// gridColumns가 없거나 범위를 벗어나면 자동 조정
|
||||
let adjustedGridColumns = comp.gridColumns;
|
||||
if (!adjustedGridColumns || adjustedGridColumns < 1 || adjustedGridColumns > newGridSettings.columns) {
|
||||
adjustedGridColumns = adjustGridColumnsFromSize({ size: snappedSize }, newGridInfo, gridUtilSettings);
|
||||
}
|
||||
|
||||
return {
|
||||
...comp,
|
||||
position: snappedPosition,
|
||||
size: snappedSize,
|
||||
gridColumns: adjustedGridColumns, // gridColumns 속성 추가/조정
|
||||
};
|
||||
});
|
||||
|
||||
newLayout.components = adjustedComponents;
|
||||
// console.log("격자 설정 변경으로 컴포넌트 위치 및 크기 자동 조정:", adjustedComponents.length, "개");
|
||||
// console.log("새로운 격자 정보:", newGridInfo);
|
||||
}
|
||||
|
||||
// 🆕 격자 설정 변경 시 컴포넌트 크기/위치 자동 조정 로직 제거됨
|
||||
// 사용자가 명시적으로 "격자 재조정" 버튼을 클릭해야만 조정됨
|
||||
setLayout(newLayout);
|
||||
saveToHistory(newLayout);
|
||||
},
|
||||
[layout, screenResolution, saveToHistory],
|
||||
[layout, saveToHistory],
|
||||
);
|
||||
|
||||
// 해상도 변경 핸들러 (컴포넌트 크기/위치 유지)
|
||||
|
||||
Reference in New Issue
Block a user