저장버튼 제어기능 (insert)

This commit is contained in:
kjs
2025-09-18 10:05:50 +09:00
parent 7b7f81d85c
commit 7cbbf45dc9
32 changed files with 8500 additions and 116 deletions

View File

@@ -165,12 +165,10 @@ export const InteractiveScreenViewer: React.FC<InteractiveScreenViewerProps> = (
}));
console.log(`💾 로컬 상태 업데이트: ${fieldName} = "${value}"`);
// 외부 콜백이 있는 경우에도 전달
// 외부 콜백이 있는 경우에도 전달 (개별 필드 단위로)
if (onFormDataChange) {
// 개별 필드를 객체로 변환해서 전달
const dataToSend = { [fieldName]: value };
onFormDataChange(dataToSend);
console.log(`📤 외부 콜백으로 전달: ${fieldName} = "${value}" (객체: ${JSON.stringify(dataToSend)})`);
onFormDataChange(fieldName, value);
console.log(`📤 외부 콜백으로 전달: ${fieldName} = "${value}"`);
}
};
@@ -1695,23 +1693,18 @@ export const InteractiveScreenViewer: React.FC<InteractiveScreenViewerProps> = (
hideLabel={false}
screenInfo={popupScreenInfo || undefined}
formData={popupFormData}
onFormDataChange={(newData) => {
onFormDataChange={(fieldName, value) => {
console.log("💾 팝업 formData 업데이트:", {
newData,
newDataType: typeof newData,
newDataKeys: Object.keys(newData || {}),
fieldName,
value,
valueType: typeof value,
prevFormData: popupFormData
});
// 잘못된 데이터 타입 체크
if (typeof newData === 'string') {
console.error("❌ 문자열이 formData로 전달됨:", newData);
return;
}
if (newData && typeof newData === 'object') {
setPopupFormData(prev => ({ ...prev, ...newData }));
}
setPopupFormData(prev => ({
...prev,
[fieldName]: value
}));
}}
/>
</div>