"use client"; import React, { useState, useEffect } from 'react'; import { X, Save, Eye } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { MailTemplate, CreateMailTemplateDto, UpdateMailTemplateDto } from '@/lib/api/mail'; import MailDesigner from './MailDesigner'; interface MailTemplateEditorModalProps { isOpen: boolean; onClose: () => void; onSave: (data: CreateMailTemplateDto | UpdateMailTemplateDto) => Promise; template?: MailTemplate | null; mode: 'create' | 'edit'; } export default function MailTemplateEditorModal({ isOpen, onClose, onSave, template, mode, }: MailTemplateEditorModalProps) { const [isSaving, setIsSaving] = useState(false); const handleSave = async (designerData: any) => { setIsSaving(true); try { // MailDesigner가 보내는 데이터 구조에 맞춰서 처리 await onSave({ name: designerData.name || designerData.templateName || '제목 없음', subject: designerData.subject || '제목 없음', components: designerData.components || [], category: designerData.category, }); onClose(); } catch (error) { console.error('템플릿 저장 실패:', error); alert(error instanceof Error ? error.message : '저장 중 오류가 발생했습니다.'); } finally { setIsSaving(false); } }; if (!isOpen) return null; return (
{/* 헤더 */}

{mode === 'create' ? '새 메일 템플릿 만들기' : '메일 템플릿 수정'}

{/* MailDesigner 컴포넌트 */}
{ // 미리보기 로직은 MailDesigner 내부에서 처리 console.log('Preview:', data); }} />
); }