"use client"; /** * 메일 발송 액션 노드 * SMTP를 통해 이메일을 발송하는 노드 */ import { memo } from "react"; import { Handle, Position, NodeProps } from "reactflow"; import { Mail, Server } from "lucide-react"; import type { EmailActionNodeData } from "@/types/node-editor"; export const EmailActionNode = memo(({ data, selected }: NodeProps) => { const hasSmtpConfig = data.smtpConfig?.host && data.smtpConfig?.port; const hasRecipient = data.to && data.to.trim().length > 0; const hasSubject = data.subject && data.subject.trim().length > 0; return (
{/* 입력 핸들 */} {/* 헤더 */}
{data.displayName || "메일 발송"}
{/* 본문 */}
{/* SMTP 설정 상태 */}
{hasSmtpConfig ? ( {data.smtpConfig.host}:{data.smtpConfig.port} ) : ( SMTP 설정 필요 )}
{/* 수신자 */}
수신자: {hasRecipient ? ( {data.to} ) : ( 미설정 )}
{/* 제목 */}
제목: {hasSubject ? ( {data.subject} ) : ( 미설정 )}
{/* 본문 형식 */}
{data.bodyType === "html" ? "HTML" : "TEXT"} {data.attachments && data.attachments.length > 0 && ( 첨부 {data.attachments.length}개 )}
{/* 출력 핸들 */}
); }); EmailActionNode.displayName = "EmailActionNode";