summaryrefslogtreecommitdiff
path: root/components/form-data/spreadJS-dialog.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-10-29 07:46:57 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-10-29 07:46:57 +0000
commitbbc3094e932e3d193d3223448c789461f4afc058 (patch)
treef28dd034b191ca78d0af15eccbbdf7a952141153 /components/form-data/spreadJS-dialog.tsx
parentd28c43b2d33bac51c69ac7417a14f9fe83f2a25f (diff)
(대표님) 데이터룸 관련 변경사항
Diffstat (limited to 'components/form-data/spreadJS-dialog.tsx')
-rw-r--r--components/form-data/spreadJS-dialog.tsx38
1 files changed, 20 insertions, 18 deletions
diff --git a/components/form-data/spreadJS-dialog.tsx b/components/form-data/spreadJS-dialog.tsx
index 1249ebd5..0d1c258e 100644
--- a/components/form-data/spreadJS-dialog.tsx
+++ b/components/form-data/spreadJS-dialog.tsx
@@ -210,7 +210,7 @@ export function TemplateViewDialog({
length: Array.isArray(templateData) ? templateData.length : 'N/A',
data: templateData
});
-
+
// 템플릿 데이터가 없거나 빈 배열인 경우 기본 GRD_LIST 템플릿 생성
if (!templateData || (Array.isArray(templateData) && templateData.length === 0)) {
// columnsJSON이 있으면 기본 GRD_LIST 템플릿 생성
@@ -291,7 +291,7 @@ export function TemplateViewDialog({
}
setAvailableTemplates(validTemplates);
-
+
// 🔍 최종 availableTemplates 로깅
console.log('📋 availableTemplates set:', validTemplates.map(t => ({
TMPL_ID: t.TMPL_ID,
@@ -302,7 +302,7 @@ export function TemplateViewDialog({
if (validTemplates.length > 0) {
// 🔍 현재 선택된 템플릿이 availableTemplates에 있는지 확인
const selectedExists = selectedTemplateId && validTemplates.some(t => t.TMPL_ID === selectedTemplateId);
-
+
if (!selectedExists) {
// 선택된 템플릿이 없거나 유효하지 않으면 첫 번째 템플릿 선택
const firstTemplate = validTemplates[0];
@@ -325,13 +325,13 @@ export function TemplateViewDialog({
const handleTemplateChange = (templateId: string) => {
const template = availableTemplates.find(t => t?.TMPL_ID === templateId);
-
+
// 🔍 템플릿과 TMPL_ID 검증
if (!template || !template.TMPL_ID) {
console.error('❌ Template not found or invalid TMPL_ID:', templateId);
return;
}
-
+
const templateTypeToSet = determineTemplateType(template);
setSelectedTemplateId(templateId);
setTemplateType(templateTypeToSet);
@@ -349,9 +349,9 @@ export function TemplateViewDialog({
availableCount: availableTemplates.length,
availableIds: availableTemplates.map(t => t?.TMPL_ID)
});
-
+
const found = availableTemplates.find(t => t?.TMPL_ID === selectedTemplateId);
-
+
if (!found && selectedTemplateId) {
console.warn('⚠️ Selected template not found:', {
searching: selectedTemplateId,
@@ -365,7 +365,7 @@ export function TemplateViewDialog({
TYPE: found.TMPL_TYPE
});
}
-
+
return found;
}, [availableTemplates, selectedTemplateId]);
@@ -1370,7 +1370,7 @@ export function TemplateViewDialog({
// 🔍 안전성 검증: availableTemplates가 있고, selectedTemplateId가 없을 때만 실행
if (!selectedTemplateId && availableTemplates.length > 0) {
const only = availableTemplates[0];
-
+
// 🔍 TMPL_ID 검증
if (!only || !only.TMPL_ID) {
console.error('❌ First template has no TMPL_ID:', only);
@@ -1378,17 +1378,17 @@ export function TemplateViewDialog({
}
const type = determineTemplateType(only);
-
+
// 🔍 type이 null이 아닐 때만 진행
if (!type) {
console.warn('⚠️ Could not determine template type for:', only);
return;
}
-
+
// 선택되어 있지 않다면 자동 선택
setSelectedTemplateId(only.TMPL_ID);
setTemplateType(type);
-
+
// 이미 스프레드가 마운트되어 있다면 즉시 초기화
if (currentSpread) {
initSpread(currentSpread, only);
@@ -1602,7 +1602,7 @@ export function TemplateViewDialog({
{availableTemplates[0]?.NAME || 'Unnamed'} ({availableTemplates[0]?.TMPL_TYPE || 'Unknown'})
</span>
</div>
- ) : null}
+ ) : null}
{selectedTemplate && (
<div className="flex items-center gap-4 text-sm">
@@ -1666,11 +1666,13 @@ export function TemplateViewDialog({
/>
{selectedTemplate && isClient && isDataValid ? (
- <SpreadSheets
- key={`${templateType}-${selectedTemplate?.TMPL_ID || 'unknown'}-${selectedTemplateId}`}
- workbookInitialized={initSpread}
- hostStyle={hostStyle}
- />
+ <div style={{ height: '100%', width: '100%', position: 'relative' }}>
+ <SpreadSheets
+ key={`${templateType}-${selectedTemplate?.TMPL_ID || 'unknown'}-${selectedTemplateId}`}
+ workbookInitialized={initSpread}
+ hostStyle={hostStyle}
+ />
+ </div>
) : (
<div className="flex items-center justify-center h-full text-muted-foreground">
{!isClient ? (