import { useEffect, useState } from 'react'; import { useFileService } from '../hooks/useFileService'; import type { FileMetadata, FileServiceConfig } from '../types'; interface FileListProps { config?: FileServiceConfig; onFileSelect?: (file: FileMetadata) => void; onFileDelete?: (fileId: string) => void; className?: string; showPreview?: boolean; selectedFileId?: string | null; } export function FileList({ config, onFileSelect, onFileDelete, className = '', showPreview = false, selectedFileId = null, }: FileListProps) { const { listFiles, deleteFile, loading, error } = useFileService(config); const [files, setFiles] = useState([]); const loadFiles = async () => { const fileList = await listFiles(); setFiles(fileList); }; useEffect(() => { loadFiles(); }, []); const handleDelete = async (fileId: string) => { const success = await deleteFile(fileId); if (success) { await loadFiles(); onFileDelete?.(fileId); } }; const formatFileSize = (bytes: number): string => { 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 Math.round(bytes / Math.pow(k, i) * 100) / 100 + ' ' + sizes[i]; }; if (loading && files.length === 0) { return
Loading files...
; } if (error) { return
Error: {error}
; } if (files.length === 0) { return
No files found
; } return (

Files ({files.length})

); }