'use client'; import Image from 'next/image'; import { Modal } from '@/components/ui/Modal'; import { isImageMime, formatFileSize, type FileResponse } from '@/lib/files'; interface FilePreviewProps { file: FileResponse | null; open: boolean; onClose: () => void; } export function FilePreview({ file, open, onClose }: FilePreviewProps) { if (!file) return null; const API_BASE_URL = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:8000/api/v1'; const downloadUrl = `${API_BASE_URL}/vehicles/${file.vehicle_id}/files/${file.id}`; const isImg = isImageMime(file.mime_type); return (
{/* Preview content */} {isImg ? (
{file.original_filename}
) : (

Preview not available for this file type

)} {/* File metadata */}
File type: {file.mime_type}
Size: {formatFileSize(file.file_size)}
{file.created_at && (
Uploaded: {new Date(file.created_at).toLocaleDateString()}
)}
{/* Download button */}
Download
); }