feat: 카테고리 값 삭제 기능 개선 및 하위 카테고리 수집 로직 추가

- 카테고리 값 삭제 시, 자기 자신과 모든 하위 카테고리 ID를 재귀적으로 수집하는 기능을 추가하였습니다.
- 삭제 대상 카테고리 값 수집 완료 후, 하위 카테고리부터 역순으로 삭제하는 로직을 구현하였습니다.
- 관련된 로그 메시지를 추가하여 삭제 과정과 결과를 기록하도록 하였습니다.
- 화면 관리 기능에서 하위 항목 개수를 계산하는 로직을 개선하여 사용자에게 더 정확한 정보를 제공하도록 하였습니다.
This commit is contained in:
kjs
2026-01-27 10:06:40 +09:00
parent 589f5b9222
commit 64cc5c6772
6 changed files with 248 additions and 82 deletions
@@ -112,6 +112,7 @@ import "@/lib/registry/utils/performanceOptimizer";
interface ScreenDesignerProps {
selectedScreen: ScreenDefinition | null;
onBackToList: () => void;
onScreenUpdate?: (updatedScreen: Partial<ScreenDefinition>) => void;
}
// 패널 설정 (통합 패널 1개)
@@ -127,7 +128,7 @@ const panelConfigs: PanelConfig[] = [
},
];
export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenDesignerProps) {
export default function ScreenDesigner({ selectedScreen, onBackToList, onScreenUpdate }: ScreenDesignerProps) {
// 패널 상태 관리
const { panelStates, togglePanel, openPanel, closePanel } = usePanelState(panelConfigs);
@@ -1683,6 +1684,11 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD
console.log("✅ 저장 성공! 메뉴 할당 모달 열기");
toast.success("화면이 저장되었습니다.");
// 저장 성공 후 부모에게 화면 정보 업데이트 알림 (테이블명 즉시 반영)
if (onScreenUpdate && currentMainTableName) {
onScreenUpdate({ tableName: currentMainTableName });
}
// 저장 성공 후 메뉴 할당 모달 열기
setShowMenuAssignmentModal(true);
} catch (error) {
@@ -1691,7 +1697,7 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD
} finally {
setIsSaving(false);
}
}, [selectedScreen, layout, screenResolution, tables]);
}, [selectedScreen, layout, screenResolution, tables, onScreenUpdate]);
// 다국어 자동 생성 핸들러
const handleGenerateMultilang = useCallback(async () => {