'use client'; import { useState } from 'react'; import { Dialog } from '@headlessui/react'; import { XMarkIcon } from '@heroicons/react/24/outline'; 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(); // Reset form setFormData({ first_name: '', last_name: '', email: '' }); } catch (err) { setError('Erreur lors de l\'ajout du participant'); console.error(err); } finally { setLoading(false); } }; const handleChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); }; return ( ); }