화면 복사기능 수정

This commit is contained in:
kjs
2025-11-19 10:03:38 +09:00
parent 5f026e88ab
commit b74cb94191
6 changed files with 887 additions and 180 deletions

View File

@@ -258,10 +258,32 @@ export const SelectedItemsDetailInputComponent: React.FC<SelectedItemsDetailInpu
// 🆕 저장 요청 시에만 데이터 전달 (이벤트 리스너 방식)
useEffect(() => {
const handleSaveRequest = () => {
// component.id를 문자열로 안전하게 변환
const componentKey = String(component.id || "selected_items");
console.log("🔔 [SelectedItemsDetailInput] beforeFormSave 이벤트 수신!", {
itemsCount: items.length,
hasOnFormDataChange: !!onFormDataChange,
componentId: component.id,
componentIdType: typeof component.id,
componentKey,
});
if (items.length > 0 && onFormDataChange) {
const dataToSave = { [component.id || "selected_items"]: items };
console.log("📝 [SelectedItemsDetailInput] 저장 요청 시 데이터 전달:", dataToSave);
const dataToSave = { [componentKey]: items };
console.log("📝 [SelectedItemsDetailInput] 저장 요청 시 데이터 전달:", {
key: componentKey,
itemsCount: items.length,
fullData: dataToSave,
firstItem: items[0],
});
onFormDataChange(dataToSave);
} else {
console.warn("⚠️ [SelectedItemsDetailInput] 저장 데이터 전달 실패:", {
hasItems: items.length > 0,
hasCallback: !!onFormDataChange,
itemsLength: items.length,
});
}
};
@@ -342,6 +364,14 @@ export const SelectedItemsDetailInputComponent: React.FC<SelectedItemsDetailInpu
// 🆕 그룹별 필드 변경 핸들러: itemId + groupId + entryId + fieldName
const handleFieldChange = useCallback((itemId: string, groupId: string, entryId: string, fieldName: string, value: any) => {
console.log("📝 [handleFieldChange] 필드 값 변경:", {
itemId,
groupId,
entryId,
fieldName,
value,
});
setItems((prevItems) => {
return prevItems.map((item) => {
if (item.id !== itemId) return item;
@@ -357,6 +387,12 @@ export const SelectedItemsDetailInputComponent: React.FC<SelectedItemsDetailInpu
[fieldName]: value,
};
console.log("✅ [handleFieldChange] Entry 업데이트:", {
beforeKeys: Object.keys(updatedEntries[existingEntryIndex]),
afterKeys: Object.keys(updatedEntry),
updatedEntry,
});
// 🆕 가격 관련 필드가 변경되면 자동 계산
if (componentConfig.autoCalculation) {
const { inputFields, targetField } = componentConfig.autoCalculation;