'use client'; import { useEffect, useCallback } from 'react'; import { createPortal } from 'react-dom'; import { motion, AnimatePresence } from 'framer-motion'; import { X } from 'lucide-react'; interface DemoVideoModalProps { isOpen: boolean; onClose: () => void; } export function DemoVideoModal({ isOpen, onClose }: DemoVideoModalProps) { const handleKeyDown = useCallback( (e: KeyboardEvent) => { if (e.key === 'Escape') onClose(); }, [onClose] ); useEffect(() => { if (!isOpen) return; document.addEventListener('keydown', handleKeyDown); document.body.style.overflow = 'hidden'; return () => { document.removeEventListener('keydown', handleKeyDown); document.body.style.overflow = ''; }; }, [isOpen, handleKeyDown]); if (typeof document === 'undefined') return null; return createPortal( {isOpen && ( e.stopPropagation()} >
{/* Le WebM 2026 passe en premier : le navigateur retient la premiere source qu'il sait lire, et c'est la seule a jour du design actuel. Le MP4 de juillet reste en dernier recours pour Safari, qui ne lit pas le VP8. */}
)}
, document.body ); }