"use client"; import React from "react"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; import { Badge } from "@/components/ui/badge"; import { Key } from "lucide-react"; import { TableInfo, ColumnInfo } from "@/lib/api/dataflow"; import { SimpleKeySettings as SimpleKeySettingsType } from "@/types/connectionTypes"; interface SimpleKeySettingsProps { settings: SimpleKeySettingsType; onSettingsChange: (settings: SimpleKeySettingsType) => void; availableTables: TableInfo[]; selectedFromTable: string; selectedToTable: string; fromTableColumns: ColumnInfo[]; toTableColumns: ColumnInfo[]; selectedFromColumns: string[]; selectedToColumns: string[]; onFromColumnsChange: (columns: string[]) => void; onToColumnsChange: (columns: string[]) => void; } export const SimpleKeySettings: React.FC = ({ settings, onSettingsChange, availableTables, selectedFromTable, selectedToTable, fromTableColumns, toTableColumns, selectedFromColumns, selectedToColumns, onFromColumnsChange, onToColumnsChange, }) => { return (
{/* 테이블 및 컬럼 선택 */}
테이블 및 컬럼 선택
{/* 현재 선택된 테이블 표시 */}
{availableTables.find((t) => t.tableName === selectedFromTable)?.displayName || selectedFromTable} ({selectedFromTable})
{availableTables.find((t) => t.tableName === selectedToTable)?.displayName || selectedToTable} ({selectedToTable})
{/* 컬럼 선택 */}
{fromTableColumns.map((column) => ( ))} {fromTableColumns.length === 0 && (
{selectedFromTable ? "컬럼을 불러오는 중..." : "테이블을 먼저 선택해주세요"}
)}
{toTableColumns.map((column) => ( ))} {toTableColumns.length === 0 && (
{selectedToTable ? "컬럼을 불러오는 중..." : "테이블을 먼저 선택해주세요"}
)}
{/* 선택된 컬럼 미리보기 */} {(selectedFromColumns.length > 0 || selectedToColumns.length > 0) && (
{selectedFromColumns.length > 0 ? ( selectedFromColumns.map((column) => { const columnInfo = fromTableColumns.find((col) => col.columnName === column); const displayName = columnInfo?.displayName || columnInfo?.columnLabel || column; return ( {displayName} ); }) ) : ( 선택된 컬럼 없음 )}
{selectedToColumns.length > 0 ? ( selectedToColumns.map((column) => { const columnInfo = toTableColumns.find((col) => col.columnName === column); const displayName = columnInfo?.displayName || columnInfo?.columnLabel || column; return ( {displayName} ); }) ) : ( 선택된 컬럼 없음 )}
)}
{/* 단순 키값 연결 설정 */}
단순 키값 연결 설정