'use client'; import { useState } from 'react'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog'; import { Label } from '@/components/ui/label'; import { participantService } from '@/lib/services'; interface AddParticipantModalProps { isOpen: boolean; onClose: () => void; onSuccess: () => void; campaignId: string; campaignTitle?: string; } export default function AddParticipantModal({ isOpen, onClose, onSuccess, campaignId, campaignTitle }: AddParticipantModalProps) { const [formData, setFormData] = useState({ first_name: '', last_name: '', email: '' }); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(''); try { await participantService.create({ campaign_id: campaignId, first_name: formData.first_name, last_name: formData.last_name, email: formData.email }); onSuccess(); setFormData({ first_name: '', last_name: '', email: '' }); } catch (err: any) { const errorMessage = err?.message || err?.details || 'Erreur lors de l\'ajout du participant'; setError(`Erreur lors de l'ajout du participant: ${errorMessage}`); console.error('Erreur lors de l\'ajout du participant:', err); } finally { setLoading(false); } }; const handleChange = (e: React.ChangeEvent) => { setFormData(prev => ({ ...prev, [e.target.name]: e.target.value })); }; const handleClose = () => { setFormData({ first_name: '', last_name: '', email: '' }); setError(''); onClose(); }; return ( Ajouter un participant {campaignTitle && `Ajoutez un nouveau participant à la campagne "${campaignTitle}".`} {!campaignTitle && 'Ajoutez un nouveau participant à cette campagne.'}
{error && (

{error}

)}
); }