import React, { useRef, useState, DragEvent, useEffect } from "react"; import { Paper, Box, Typography, Button, Tooltip } from "@mui/material"; import { X, Info, Plus, Play } from "lucide-react"; import { toast } from "react-toastify"; interface VideoPreviewCardProps { title: string; videoId: string | null | undefined; onVideoClick: () => void; onDeleteVideoClick: () => void; onSelectVideoClick: (file?: File) => void; tooltipText?: string; className?: string; } export const VideoPreviewCard: React.FC = ({ title, videoId, onVideoClick, onDeleteVideoClick, onSelectVideoClick, tooltipText, className, }) => { const fileInputRef = useRef(null); const [isDragOver, setIsDragOver] = useState(false); const token = localStorage.getItem("token"); useEffect(() => {}, [isDragOver]); const handleZoneClick = () => { fileInputRef.current?.click(); }; const handleFileInputChange = async ( event: React.ChangeEvent ) => { const file = event.target.files?.[0]; if (file) { if (file.type.startsWith("video/")) { onSelectVideoClick(file); } else { toast.error("Пожалуйста, выберите видео файл"); } } event.target.value = ""; }; const handleDragOver = (event: DragEvent) => { event.preventDefault(); event.stopPropagation(); setIsDragOver(true); }; const handleDragLeave = (event: DragEvent) => { event.preventDefault(); event.stopPropagation(); setIsDragOver(false); }; const handleDrop = async (event: DragEvent) => { event.preventDefault(); event.stopPropagation(); setIsDragOver(false); const files = event.dataTransfer.files; if (files && files.length > 0) { const file = files[0]; if (file.type.startsWith("video/")) { onSelectVideoClick(file); } else { toast.error("Пожалуйста, выберите видео файл"); } } }; return ( {title} {tooltipText && ( )} {videoId && ( )} {videoId ? ( ) : (

Перетащите файл

или

{/* Hidden file input */}
)}
); };