'use client' import { useEffect, useRef, useState } from 'react' import TagSelector from '@/components/tags/TagSelector' interface Props { url: string name: string onClose: () => void mediaKey?: string onTagsChanged?: () => void } export default function VideoPlayerModal({ url, name, onClose, mediaKey, onTagsChanged }: Props) { const overlayRef = useRef(null) const [showTags, setShowTags] = useState( () => !!mediaKey && typeof window !== 'undefined' && window.innerWidth >= 1280 ) useEffect(() => { const handleKey = (e: KeyboardEvent) => { if (e.key === 'Escape') onClose() } document.addEventListener('keydown', handleKey) document.body.style.overflow = 'hidden' return () => { document.removeEventListener('keydown', handleKey) document.body.style.overflow = '' } }, [onClose]) const handleOverlayClick = (e: React.MouseEvent) => { if (e.target === overlayRef.current) onClose() } return (
{/* Toolbar */}
{name}
{mediaKey && ( )}
{showTags ? (
{/* Video */}
{/* Tag panel */}
e.stopPropagation()} >

Tags

) : (
) }