import { Camera, Plus, Scaling, Trash } from "lucide-react"; interface ImageUploadSectionProps { selectedImages: Array<{ file: File; url: string }>; onUploadClick: () => void; onRemoveImage: (index: number) => void; onScaleImage: (index: number) => void; onImageSelect: (event: React.ChangeEvent) => void; fileInputRef: React.RefObject; } // Helper function to check if file is a video const isVideoFile = (file: File): boolean => { if (!file) { console.log("No file provided to isVideoFile"); return false; } // Check by MIME type first if (file.type && file.type.startsWith("video/")) { return true; } // Fallback: check by file extension if MIME type is not available const fileExtension = file.name.toLowerCase().split(".").pop(); const videoExtensions = [ "mp4", "webm", "ogg", "avi", "mov", "wmv", "flv", "mkv", "3gp", ]; return videoExtensions.includes(fileExtension || ""); }; export const ImageUploadSection: React.FC = ({ selectedImages, onUploadClick, onRemoveImage, onScaleImage, onImageSelect, fileInputRef, }: ImageUploadSectionProps) => { return (
{selectedImages.length <= 1 &&
} {/* Selected Images and Videos */} {selectedImages.map((image, index) => { const isVideo = isVideoFile(image.file); return (
{isVideo ? (
); })} {/* Upload Container */}
{ if (e.key === "Enter" || e.key === " ") { e.preventDefault(); onUploadClick(); } }} role="button" tabIndex={0} className="aspect-square relative rounded-lg border-2 border-dashed border-GRAY3 flex flex-col items-center justify-between cursor-pointer hover:border-GRAY2 transition-colors bg-WHITE3" >
{selectedImages.length > 0 && (

{selectedImages.length} فایل انتخاب شده

)} {/* Hidden file input - now accepts both images and videos */}
); };