import React from 'react'; export type FileType = 'image' | 'video' | 'document' | null; interface FilePreviewProps { file: File; type: FileType; previewUrl: string; onRemove: () => void; uploadProgress?: number; uploadError?: string; } export const FilePreview: React.FC = ({ file, type, previewUrl, onRemove, uploadProgress, uploadError }) => { const getFileIcon = () => { switch (type) { case 'document': return ( ); default: return null; } }; const formatFileSize = (bytes: number) => { if (bytes === 0) return '0 Bytes'; const k = 1024; const sizes = ['Bytes', 'KB', 'MB', 'GB']; const i = Math.floor(Math.log(bytes) / Math.log(k)); return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]; }; return (
{type === 'image' && ( {file.name} )} {type === 'video' && ( )} {type === 'document' && (
{getFileIcon()}
)}
{file.name} {formatFileSize(file.size)}
{uploadProgress !== undefined && uploadProgress < 100 && (
)} {uploadError && (
{uploadError}
)}
); };