diff --git a/frontend/lib/registry/components/selected-items-detail-input/SelectedItemsDetailInputComponent.tsx b/frontend/lib/registry/components/selected-items-detail-input/SelectedItemsDetailInputComponent.tsx index b50c32fe..a70d8e74 100644 --- a/frontend/lib/registry/components/selected-items-detail-input/SelectedItemsDetailInputComponent.tsx +++ b/frontend/lib/registry/components/selected-items-detail-input/SelectedItemsDetailInputComponent.tsx @@ -263,14 +263,14 @@ export const SelectedItemsDetailInputComponent: React.FC { setItems((prevItems) => { - const updatedItems = prevItems.map((item) => { + return prevItems.map((item) => { if (item.id !== itemId) return item; const groupEntries = item.fieldGroups[groupId] || []; const existingEntryIndex = groupEntries.findIndex((e) => e.id === entryId); if (existingEntryIndex >= 0) { - // 기존 entry 업데이트 + // 기존 entry 업데이트 (항상 이 경로로만 진입) const updatedEntries = [...groupEntries]; updatedEntries[existingEntryIndex] = { ...updatedEntries[existingEntryIndex], @@ -284,22 +284,11 @@ export const SelectedItemsDetailInputComponent: React.FC { const newEntryId = `entry-${Date.now()}`; + + // 🔧 미리 빈 entry를 추가하여 리렌더링 방지 + setItems((prevItems) => { + return prevItems.map((item) => { + if (item.id !== itemId) return item; + + const groupEntries = item.fieldGroups[groupId] || []; + const newEntry: GroupEntry = { id: newEntryId }; + + return { + ...item, + fieldGroups: { + ...item.fieldGroups, + [groupId]: [...groupEntries, newEntry], + }, + }; + }); + }); + setIsEditing(true); setEditingItemId(itemId); setEditingDetailId(newEntryId);