import { FC, useState } from 'react' import Input from '@/components/Input' import Button from '@/components/Button' import { Add, Trash } from 'iconsax-react' import { toast } from '@/components/Toast' interface ForwarderManagerProps { forwarders: string[] onChange: (forwarders: string[]) => void error?: string } const ForwarderManager: FC = ({ forwarders, onChange, error }) => { const [newForwarder, setNewForwarder] = useState('') const validateEmail = (email: string): boolean => { const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/ return emailRegex.test(email) } const addForwarder = () => { if (!newForwarder.trim()) return if (!validateEmail(newForwarder)) { toast('لطفاً یک ایمیل معتبر وارد کنید', 'error') return } if (forwarders.includes(newForwarder)) { toast('این ایمیل قبلاً اضافه شده است', 'error') return } onChange([...forwarders, newForwarder]) setNewForwarder('') } const removeForwarder = (index: number) => { const newForwarders = forwarders.filter((_, i) => i !== index) onChange(newForwarders) } const handleKeyPress = (e: React.KeyboardEvent) => { if (e.key === 'Enter') { e.preventDefault() addForwarder() } } return (
{/* Add new forwarder */}
setNewForwarder(e.target.value)} onKeyPress={handleKeyPress} className='text-left' dir='ltr' />
{/* List of existing forwarders */} {forwarders.length > 0 && (
{forwarders.map((forwarder, index) => (
{forwarder}
))}
)} {error && (
{error}
)}
ایمیل‌هایی که به این آدرس ارسال می‌شوند به آدرس‌های فوق نیز فرستاده خواهند شد
) } export default ForwarderManager