"use client"; /** * UPDATE 액션 노드 */ import { memo } from "react"; import { Handle, Position, NodeProps } from "reactflow"; import { Edit } from "lucide-react"; import type { UpdateActionNodeData } from "@/types/node-editor"; export const UpdateActionNode = memo(({ data, selected }: NodeProps) => { return (
{/* 입력 핸들 */} {/* 헤더 */}
UPDATE
{data.displayName || data.targetTable}
{/* 본문 */}
타겟: {data.displayName || data.targetTable} {data.targetTable && data.displayName && data.displayName !== data.targetTable && ( ({data.targetTable}) )}
{/* WHERE 조건 */} {data.whereConditions && data.whereConditions.length > 0 && (
WHERE 조건:
{data.whereConditions.slice(0, 2).map((condition, idx) => (
{condition.fieldLabel || condition.field} {condition.operator} {condition.sourceFieldLabel || condition.sourceField || condition.staticValue || "?"}
))} {data.whereConditions.length > 2 && (
... 외 {data.whereConditions.length - 2}개
)}
)} {/* 필드 매핑 */} {data.fieldMappings && data.fieldMappings.length > 0 && (
업데이트 필드:
{data.fieldMappings.slice(0, 3).map((mapping, idx) => (
{mapping.sourceFieldLabel || mapping.sourceField || mapping.staticValue || "?"} {mapping.targetFieldLabel || mapping.targetField}
))} {data.fieldMappings.length > 3 && (
... 외 {data.fieldMappings.length - 3}개
)}
)} {/* 옵션 */} {data.options && data.options.batchSize && (
배치 {data.options.batchSize}건
)}
{/* 출력 핸들 */}
); }); UpdateActionNode.displayName = "UpdateActionNode";