제어 관리 라벨로 보여주기 #40
|
|
@ -185,6 +185,9 @@ export const ConnectionSetupModal: React.FC<ConnectionSetupModalProps> = ({
|
|||
// 모달이 열릴 때 기본값 설정
|
||||
useEffect(() => {
|
||||
if (isOpen && connection) {
|
||||
// 모달이 열릴 때마다 캐시 초기화 (라벨 업데이트 반영)
|
||||
setTableColumnsCache({});
|
||||
|
||||
const fromTableName = connection.fromNode.tableName;
|
||||
const toTableName = connection.toNode.tableName;
|
||||
const fromDisplayName = connection.fromNode.displayName;
|
||||
|
|
@ -283,8 +286,8 @@ export const ConnectionSetupModal: React.FC<ConnectionSetupModalProps> = ({
|
|||
}, [selectedFromColumns, selectedToColumns]);
|
||||
|
||||
// 테이블 컬럼 로드 함수 (캐시 활용)
|
||||
const loadTableColumns = async (tableName: string): Promise<ColumnInfo[]> => {
|
||||
if (tableColumnsCache[tableName]) {
|
||||
const loadTableColumns = async (tableName: string, forceReload = false): Promise<ColumnInfo[]> => {
|
||||
if (tableColumnsCache[tableName] && !forceReload) {
|
||||
return tableColumnsCache[tableName];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ export const ConditionRenderer: React.FC<ConditionRendererProps> = ({
|
|||
<SelectContent>
|
||||
{fromTableColumns.map((column) => (
|
||||
<SelectItem key={column.columnName} value={column.columnName}>
|
||||
{column.columnName}
|
||||
{column.displayName || column.columnLabel || column.columnName}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
|
|
|
|||
|
|
@ -214,13 +214,13 @@ export const ActionConditionRenderer: React.FC<ActionConditionRendererProps> = (
|
|||
{condition.tableType === "from" &&
|
||||
fromTableColumns.map((column) => (
|
||||
<SelectItem key={column.columnName} value={column.columnName}>
|
||||
{column.columnName}
|
||||
{column.displayName || column.columnLabel || column.columnName}
|
||||
</SelectItem>
|
||||
))}
|
||||
{condition.tableType === "to" &&
|
||||
toTableColumns.map((column) => (
|
||||
<SelectItem key={column.columnName} value={column.columnName}>
|
||||
{column.columnName}
|
||||
{column.displayName || column.columnLabel || column.columnName}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ export const ActionFieldMappings: React.FC<ActionFieldMappingsProps> = ({
|
|||
tableColumnsCache[mapping.sourceTable]?.map((column) => (
|
||||
<SelectItem key={column.columnName} value={column.columnName}>
|
||||
<div className="truncate" title={column.columnName}>
|
||||
{column.columnName}
|
||||
{column.displayName || column.columnLabel || column.columnName}
|
||||
</div>
|
||||
</SelectItem>
|
||||
))}
|
||||
|
|
@ -200,7 +200,7 @@ export const ActionFieldMappings: React.FC<ActionFieldMappingsProps> = ({
|
|||
tableColumnsCache[mapping.targetTable]?.map((column) => (
|
||||
<SelectItem key={column.columnName} value={column.columnName}>
|
||||
<div className="truncate" title={column.columnName}>
|
||||
{column.columnName}
|
||||
{column.displayName || column.columnLabel || column.columnName}
|
||||
</div>
|
||||
</SelectItem>
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ export const ActionSplitConfig: React.FC<ActionSplitConfigProps> = ({
|
|||
<SelectContent>
|
||||
{fromTableColumns.map((column) => (
|
||||
<SelectItem key={column.columnName} value={column.columnName}>
|
||||
{column.columnName}
|
||||
{column.displayName || column.columnLabel || column.columnName}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
|
|
@ -117,7 +117,7 @@ export const ActionSplitConfig: React.FC<ActionSplitConfigProps> = ({
|
|||
<SelectContent>
|
||||
{toTableColumns.map((column) => (
|
||||
<SelectItem key={column.columnName} value={column.columnName}>
|
||||
{column.columnName}
|
||||
{column.displayName || column.columnLabel || column.columnName}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
|
|
|
|||
|
|
@ -198,7 +198,9 @@ export const ColumnTableSection: React.FC<ColumnTableSectionProps> = ({
|
|||
<div className="flex items-start justify-between gap-2">
|
||||
<div className="min-w-0 flex-1">
|
||||
<div className="flex items-center gap-2">
|
||||
<span className="truncate font-medium">{column.columnName}</span>
|
||||
<span className="truncate font-medium">
|
||||
{column.displayName || column.columnLabel || column.columnName}
|
||||
</span>
|
||||
{isSelected && <span className="flex-shrink-0 text-blue-500">●</span>}
|
||||
{isMapped && <span className="flex-shrink-0 text-green-500">✓</span>}
|
||||
{oppositeSelectedColumn && !isTypeCompatible && (
|
||||
|
|
@ -264,7 +266,9 @@ export const ColumnTableSection: React.FC<ColumnTableSectionProps> = ({
|
|||
>
|
||||
<div className="flex min-w-0 flex-col justify-between">
|
||||
<div className="flex items-center gap-2">
|
||||
<span className="truncate font-medium">{column.columnName}</span>
|
||||
<span className="truncate font-medium">
|
||||
{column.displayName || column.columnLabel || column.columnName}
|
||||
</span>
|
||||
{isSelected && <span className="flex-shrink-0 text-green-500">●</span>}
|
||||
{oppositeSelectedColumn && !isTypeCompatible && (
|
||||
<span className="flex-shrink-0 text-red-500" title="데이터 타입이 호환되지 않음">
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ export const SimpleKeySettings: React.FC<SimpleKeySettingsProps> = ({
|
|||
}}
|
||||
className="rounded"
|
||||
/>
|
||||
<span>{column.columnName}</span>
|
||||
<span>{column.displayName || column.columnLabel || column.columnName}</span>
|
||||
<span className="text-xs text-gray-500">({column.dataType})</span>
|
||||
</label>
|
||||
))}
|
||||
|
|
@ -112,7 +112,7 @@ export const SimpleKeySettings: React.FC<SimpleKeySettingsProps> = ({
|
|||
}}
|
||||
className="rounded"
|
||||
/>
|
||||
<span>{column.columnName}</span>
|
||||
<span>{column.displayName || column.columnLabel || column.columnName}</span>
|
||||
<span className="text-xs text-gray-500">({column.dataType})</span>
|
||||
</label>
|
||||
))}
|
||||
|
|
|
|||
Loading…
Reference in New Issue