'use client'; import { useState, useEffect } from 'react'; import { MessageTemplate } from '../types'; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogFooter } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Send } from 'lucide-react'; interface MessageTemplateTestDialogProps { open: boolean; onOpenChange: (open: boolean) => void; testTemplate: MessageTemplate | null; onSendTest: (testData: TestData) => void; } interface TestData { recipient: string; variables: Record; } export function MessageTemplateTestDialog({ open, onOpenChange, testTemplate, onSendTest }: MessageTemplateTestDialogProps) { const [testData, setTestData] = useState({ recipient: '', variables: {}, }); // 使用useEffect来管理测试数据的状态 useEffect(() => { if (testTemplate && open) { const varsObj: Record = {}; testTemplate.variables.forEach(v => { varsObj[v] = ''; }); setTestData({ recipient: '', variables: varsObj, }); } }, [testTemplate, open]); const handleSendTest = () => { onSendTest(testData); }; const handleVariableChange = (variable: string, value: string) => { setTestData({ ...testData, variables: { ...testData.variables, [variable]: value } }); }; return (
发送测试消息
测试发送消息模版
{testTemplate && (

模板:{testTemplate.name}

setTestData({ ...testData, recipient: e.target.value })} placeholder={ testTemplate.type === 'sms' ? '手机号' : testTemplate.type === 'email' ? '邮箱地址' : '用户ID' } />
{testTemplate.variables.length > 0 && (
{testTemplate.variables.map(variable => (
handleVariableChange(variable, e.target.value)} placeholder={`输入 ${variable} 的值`} />
))}
)}
)}
); }