diff options
| author | joonhoekim <26rote@gmail.com> | 2025-10-03 15:20:42 +0900 |
|---|---|---|
| committer | joonhoekim <26rote@gmail.com> | 2025-10-03 15:20:42 +0900 |
| commit | 6cd69b11dc3cedc3ec1e481f1404bd2ce9a64d11 (patch) | |
| tree | 4e3435a340d49267b48791d59d3df2e574dd779a | |
| parent | 08e91ccdf68585c5f7499a33cffd19a04a7834aa (diff) | |
(김준회) spreadjs 렌더링 사이클 오류 수정: avilableTemplates 변경시 selectedTemplateId 변경하도록 처리
| -rw-r--r-- | components/form-data/spreadJS-dialog.tsx | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/components/form-data/spreadJS-dialog.tsx b/components/form-data/spreadJS-dialog.tsx index 8243566a..1249ebd5 100644 --- a/components/form-data/spreadJS-dialog.tsx +++ b/components/form-data/spreadJS-dialog.tsx @@ -299,19 +299,27 @@ export function TemplateViewDialog({ TYPE: t.TMPL_TYPE }))); - if (validTemplates.length > 0 && !selectedTemplateId) { - const firstTemplate = validTemplates[0]; - // 🔍 TMPL_ID 검증 (isValidTemplate로 필터링했으므로 존재해야 하지만 안전장치) - if (firstTemplate?.TMPL_ID) { - const templateTypeToSet = determineTemplateType(firstTemplate); - console.log(`🎯 Auto-selecting first template: ${firstTemplate.TMPL_ID} (${templateTypeToSet})`); - setSelectedTemplateId(firstTemplate.TMPL_ID); - setTemplateType(templateTypeToSet); + if (validTemplates.length > 0) { + // 🔍 현재 선택된 템플릿이 availableTemplates에 있는지 확인 + const selectedExists = selectedTemplateId && validTemplates.some(t => t.TMPL_ID === selectedTemplateId); + + if (!selectedExists) { + // 선택된 템플릿이 없거나 유효하지 않으면 첫 번째 템플릿 선택 + const firstTemplate = validTemplates[0]; + if (firstTemplate?.TMPL_ID) { + const templateTypeToSet = determineTemplateType(firstTemplate); + console.log(`🎯 ${selectedTemplateId ? 'Re-selecting' : 'Auto-selecting'} first template: ${firstTemplate.TMPL_ID} (${templateTypeToSet})`); + if (selectedTemplateId) { + console.warn(`⚠️ Previously selected "${selectedTemplateId}" not found in availableTemplates, switching to "${firstTemplate.TMPL_ID}"`); + } + setSelectedTemplateId(firstTemplate.TMPL_ID); + setTemplateType(templateTypeToSet); + } else { + console.error('❌ First valid template has no TMPL_ID:', firstTemplate); + } } else { - console.error('❌ First valid template has no TMPL_ID:', firstTemplate); + console.log(`✅ Template already selected and valid: ${selectedTemplateId}`); } - } else if (selectedTemplateId) { - console.log(`ℹ️ Template already selected: ${selectedTemplateId}`); } }, [templateData, selectedTemplateId, isValidTemplate, determineTemplateType, columnsJSON]); |
