import React, { useEffect, useState } from 'react'; import { X } from 'lucide-react'; import './Modal.css'; interface ModalProps { isOpen: boolean; onClose: () => void; title: string; children: React.ReactNode; size?: 'sm' | 'md' | 'lg' | 'xl'; } const Modal: React.FC = ({ isOpen, onClose, title, children, size = 'md' }) => { const [isVisible, setIsVisible] = useState(isOpen); useEffect(() => { if (isOpen) { setIsVisible(true); } else { // attendre que l'animation de fermeture se joue const timer = setTimeout(() => setIsVisible(false), 300); // durée en ms = durée CSS return () => clearTimeout(timer); } }, [isOpen]); if (!isVisible) return null; const handleBackdropClick = (e: React.MouseEvent) => { if (e.target === e.currentTarget) { onClose(); } }; return (

{title}

{children}
); }; export default Modal;