fix: 수주등록 항목추가 시 정보출력 가능하게 수정

문제:
- 조건부 컨테이너 내부의 modal-repeater-table 컴포넌트가 데이터 업데이트 불가
- ConditionalSectionViewer가 RealtimePreview에 formData/onFormDataChange 미전달

해결:
- ConditionalSectionViewer.tsx: RealtimePreview에 formData, onFormDataChange props 추가
- DynamicComponentRenderer.tsx: 디버깅 로그 정리
- ScreenModal.tsx: 디버깅 로그 정리

영향:
- 수주 등록 화면 품목 추가 기능 정상 작동
- 조건부 컨테이너 내부 모든 폼 컴포넌트 데이터 바인딩 정상화

Refs: #수주관리 #modal-repeater-table #ConditionalContainer
This commit is contained in:
SeongHyun Kim
2025-11-19 11:48:00 +09:00
parent bfc86fbcfa
commit 8eccdd0b4c
8 changed files with 312 additions and 41 deletions

View File

@@ -42,7 +42,6 @@ export function ItemSelectionModal({
// 모달 열릴 때 초기 검색
useEffect(() => {
if (open) {
console.log("🚪 모달 열림 - uniqueField:", uniqueField, "multiSelect:", multiSelect);
search("", 1); // 빈 검색어로 전체 목록 조회
setSelectedItems([]);
} else {
@@ -59,14 +58,6 @@ export function ItemSelectionModal({
const handleToggleItem = (item: any) => {
const itemValue = uniqueField ? item[uniqueField] : undefined;
console.log("🖱️ 행 클릭:", {
item,
uniqueField,
itemValue,
currentSelected: selectedItems.length,
selectedValues: uniqueField ? selectedItems.map(s => s[uniqueField]) : []
});
if (!multiSelect) {
setSelectedItems([item]);
return;
@@ -77,14 +68,10 @@ export function ItemSelectionModal({
console.warn(`⚠️ uniqueField "${uniqueField}"의 값이 undefined입니다. 객체 참조로 비교합니다.`);
const itemIsSelected = selectedItems.includes(item);
console.log("📊 선택 상태 (객체 참조):", itemIsSelected);
if (itemIsSelected) {
const newSelected = selectedItems.filter((selected) => selected !== item);
console.log(" 제거 후:", newSelected.length);
setSelectedItems(newSelected);
} else {
console.log(" 추가");
setSelectedItems([...selectedItems, item]);
}
return;
@@ -101,8 +88,6 @@ export function ItemSelectionModal({
return selectedValue === itemValue;
});
console.log("📊 선택 상태:", itemIsSelected);
if (itemIsSelected) {
const newSelected = selectedItems.filter((selected) => {
if (!uniqueField) {
@@ -114,15 +99,15 @@ export function ItemSelectionModal({
}
return selectedValue !== itemValue;
});
console.log(" 제거 후:", newSelected.length);
setSelectedItems(newSelected);
} else {
console.log(" 추가");
setSelectedItems([...selectedItems, item]);
}
};
const handleConfirm = () => {
console.log("✅ ItemSelectionModal 추가:", selectedItems.length, "개 항목");
onSelect(selectedItems);
onOpenChange(false);
};
@@ -307,7 +292,7 @@ export function ItemSelectionModal({
}}
>
<div className="pointer-events-none">
<Checkbox checked={selected} readOnly />
<Checkbox checked={selected} />
</div>
</td>
)}