import { HardDrive, Folder } from 'lucide-react'; import { useStorageUsage } from '@/hooks/useStorage'; interface StorageUsageCardProps { className?: string; } function formatBytes(bytes: number): string { if (bytes < 1024) return `${bytes} B`; if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`; if (bytes < 1024 * 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MB`; return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`; } export function StorageUsageCard({ className = '' }: StorageUsageCardProps) { const { data, isLoading, error } = useStorageUsage(); if (isLoading) { return (
); } if (error || !data) { return (

Unable to load storage usage

); } const usedPercent = data.maxBytes ? data.usagePercent : 0; const progressColor = usedPercent > 90 ? 'bg-red-500' : usedPercent > 70 ? 'bg-yellow-500' : 'bg-blue-500'; return (

Storage Usage

{/* Usage stats */}
{formatBytes(data.totalBytes)} used {data.maxBytes && ( of {formatBytes(data.maxBytes)} )}
{data.maxBytes && (
)}
{/* Files count */}
Total files {data.totalFiles.toLocaleString()}
{/* Max file size */} {data.maxFileSize && (
Max file size {formatBytes(data.maxFileSize)}
)} {/* Files by folder */} {Object.keys(data.filesByFolder).length > 0 && (

By Folder

{Object.entries(data.filesByFolder).map(([folder, count]) => (
{folder}
{count}
))}
)}
); }