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