'use client'; import { useState, useEffect } from 'react'; import { Dialog } from '@headlessui/react'; import { XMarkIcon } from '@heroicons/react/24/outline'; import { propositionService } from '@/lib/services'; import { Proposition } from '@/types'; interface EditPropositionModalProps { isOpen: boolean; onClose: () => void; onSuccess: () => void; proposition: Proposition; } export default function EditPropositionModal({ isOpen, onClose, onSuccess, proposition }: EditPropositionModalProps) { const [formData, setFormData] = useState({ title: '', description: '', author_first_name: '', author_last_name: '', author_email: '' }); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); // Initialiser le formulaire avec les données de la proposition useEffect(() => { if (proposition) { setFormData({ title: proposition.title, description: proposition.description, author_first_name: proposition.author_first_name, author_last_name: proposition.author_last_name, author_email: proposition.author_email }); } }, [proposition]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(''); try { await propositionService.update(proposition.id, formData); onSuccess(); } catch (err: any) { const errorMessage = err?.message || err?.details || 'Erreur lors de la modification de la proposition'; setError(`Erreur lors de la modification de la proposition: ${errorMessage}`); } finally { setLoading(false); } }; const handleChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); }; return (