"use client"; /** * 필드 매핑 노드 */ import { memo } from "react"; import { Handle, Position, NodeProps } from "reactflow"; import { ArrowLeftRight } from "lucide-react"; import type { FieldMappingNodeData } from "@/types/node-editor"; export const FieldMappingNode = memo(({ data, selected }: NodeProps) => { return (
{/* 입력 핸들 */} {/* 헤더 */}
필드 매핑
{data.displayName || "데이터 매핑"}
{/* 본문 */}
{data.mappings && data.mappings.length > 0 ? (
매핑 규칙: ({data.mappings.length}개)
{data.mappings.slice(0, 5).map((mapping) => (
{mapping.sourceField || "정적값"} {mapping.targetField}
{mapping.transform &&
변환: {mapping.transform}
} {mapping.staticValue !== undefined && (
값: {String(mapping.staticValue)}
)}
))} {data.mappings.length > 5 && (
... 외 {data.mappings.length - 5}개
)}
) : (
매핑 규칙 없음
)}
{/* 출력 핸들 */}
); }); FieldMappingNode.displayName = "FieldMappingNode";