"use client" import { X } from "lucide-react" import Image from "next/image" import React, { useEffect, useState } from "react" interface FilePreviewListProps { files: File[] onRemoveFile: (fileToRemove: File) => void } export function FilePreviewList({ files, onRemoveFile }: FilePreviewListProps) { const [selectedImage, setSelectedImage] = useState(null) // Cleanup object URLs on unmount useEffect(() => { const objectUrls = files .filter((file) => file.type.startsWith("image/")) .map((file) => URL.createObjectURL(file)) return () => { objectUrls.forEach(URL.revokeObjectURL) } }, [files]) if (files.length === 0) return null return ( <>
{files.map((file, index) => { const imageUrl = file.type.startsWith("image/") ? URL.createObjectURL(file) : null return (
imageUrl && setSelectedImage(imageUrl) } > {file.type.startsWith("image/") ? ( {file.name} ) : (
{file.name}
)}
) })}
{/* Image Modal/Lightbox */} {selectedImage && (
setSelectedImage(null)} >
Full size preview of uploaded diagram or image e.stopPropagation()} />
)} ) }