diff options
| author | diogo464 <[email protected]> | 2025-08-14 14:52:45 +0100 |
|---|---|---|
| committer | diogo464 <[email protected]> | 2025-08-14 14:52:45 +0100 |
| commit | b0e0c47388d1077fa78019c9642b998877f0b80c (patch) | |
| tree | 9df2bd1469c93cab86cd7e58bb31b64263455cf5 | |
| parent | 5c32d58bbeb6d0cc836a78a2279bb88ffc8fba63 (diff) | |
fix: simplify storage UI to show only disk usage
Remove confusing drive usage display due to deduplication causing
drive size to be larger than actual disk usage, which resulted in
NaN calculations. Now shows clean disk usage with proper formatting.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
| -rw-r--r-- | frontend/components/drive/StorageUsage.tsx | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/frontend/components/drive/StorageUsage.tsx b/frontend/components/drive/StorageUsage.tsx index 1f963ce..2cb5d5d 100644 --- a/frontend/components/drive/StorageUsage.tsx +++ b/frontend/components/drive/StorageUsage.tsx | |||
| @@ -18,7 +18,7 @@ export function StorageUsage({ data }: StorageUsageProps) { | |||
| 18 | return ( | 18 | return ( |
| 19 | <div className="bg-card rounded-lg border p-4"> | 19 | <div className="bg-card rounded-lg border p-4"> |
| 20 | <div className="flex items-center justify-between mb-2"> | 20 | <div className="flex items-center justify-between mb-2"> |
| 21 | <span className="text-sm font-medium">Storage Usage</span> | 21 | <span className="text-sm font-medium">Disk Usage</span> |
| 22 | <span className="text-sm text-muted-foreground">Loading...</span> | 22 | <span className="text-sm text-muted-foreground">Loading...</span> |
| 23 | </div> | 23 | </div> |
| 24 | <div className="w-full h-2 bg-gray-200 rounded-full" /> | 24 | <div className="w-full h-2 bg-gray-200 rounded-full" /> |
| @@ -26,47 +26,35 @@ export function StorageUsage({ data }: StorageUsageProps) { | |||
| 26 | ) | 26 | ) |
| 27 | } | 27 | } |
| 28 | 28 | ||
| 29 | const { activeDriveUsage, totalDiskCapacity, totalDiskUsed } = data | 29 | const { totalDiskCapacity, totalDiskUsed } = data |
| 30 | 30 | ||
| 31 | // Calculate percentages based on total disk capacity | 31 | // Calculate percentage of disk used |
| 32 | const activeDrivePercentage = totalDiskCapacity > 0 ? (activeDriveUsage / totalDiskCapacity) * 100 : 0 | 32 | const diskUsedPercentage = totalDiskCapacity > 0 ? (totalDiskUsed / totalDiskCapacity) * 100 : 0 |
| 33 | const totalUsedPercentage = totalDiskCapacity > 0 ? (totalDiskUsed / totalDiskCapacity) * 100 : 0 | 33 | const availableSpace = totalDiskCapacity - totalDiskUsed |
| 34 | 34 | ||
| 35 | return ( | 35 | return ( |
| 36 | <div className="bg-card rounded-lg border p-4"> | 36 | <div className="bg-card rounded-lg border p-4"> |
| 37 | <div className="flex items-center justify-between mb-2"> | 37 | <div className="flex items-center justify-between mb-2"> |
| 38 | <span className="text-sm font-medium">Storage Usage</span> | 38 | <span className="text-sm font-medium">Disk Usage</span> |
| 39 | <span className="text-sm text-muted-foreground"> | 39 | <span className="text-sm text-muted-foreground"> |
| 40 | {formatFileSize(activeDriveUsage)} active / {formatFileSize(totalDiskUsed)} total of {formatFileSize(totalDiskCapacity)} | 40 | {formatFileSize(totalDiskUsed)} used of {formatFileSize(totalDiskCapacity)} |
| 41 | </span> | 41 | </span> |
| 42 | </div> | 42 | </div> |
| 43 | 43 | ||
| 44 | {/* Custom two-color progress bar */} | 44 | {/* Simple progress bar showing disk usage */} |
| 45 | <div className="relative w-full h-2 bg-gray-200 rounded-full overflow-hidden"> | 45 | <div className="relative w-full h-2 bg-gray-200 rounded-full overflow-hidden"> |
| 46 | {/* Total disk usage (gray background layer) */} | ||
| 47 | <div | ||
| 48 | className="absolute top-0 left-0 h-full bg-gray-400 rounded-full transition-all duration-300" | ||
| 49 | style={{ width: `${Math.min(totalUsedPercentage, 100)}%` }} | ||
| 50 | /> | ||
| 51 | {/* Active drive usage (blue foreground layer) */} | ||
| 52 | <div | 46 | <div |
| 53 | className="absolute top-0 left-0 h-full bg-blue-600 rounded-full transition-all duration-300" | 47 | className="absolute top-0 left-0 h-full bg-blue-600 rounded-full transition-all duration-300" |
| 54 | style={{ width: `${Math.min(activeDrivePercentage, 100)}%` }} | 48 | style={{ width: `${Math.min(diskUsedPercentage, 100)}%` }} |
| 55 | /> | 49 | /> |
| 56 | </div> | 50 | </div> |
| 57 | 51 | ||
| 58 | <div className="flex justify-between text-xs text-muted-foreground mt-2"> | 52 | <div className="flex justify-between text-xs text-muted-foreground mt-2"> |
| 59 | <div className="flex items-center gap-4"> | 53 | <div className="flex items-center gap-1"> |
| 60 | <div className="flex items-center gap-1"> | 54 | <div className="w-2 h-2 bg-blue-600 rounded-full" /> |
| 61 | <div className="w-2 h-2 bg-blue-600 rounded-full" /> | 55 | <span>Used: {formatFileSize(totalDiskUsed)}</span> |
| 62 | <span>Active Drive: {formatFileSize(activeDriveUsage)}</span> | ||
| 63 | </div> | ||
| 64 | <div className="flex items-center gap-1"> | ||
| 65 | <div className="w-2 h-2 bg-gray-400 rounded-full" /> | ||
| 66 | <span>Other Usage: {formatFileSize(totalDiskUsed - activeDriveUsage)}</span> | ||
| 67 | </div> | ||
| 68 | </div> | 56 | </div> |
| 69 | <span>{formatFileSize(totalDiskCapacity - totalDiskUsed)} available</span> | 57 | <span>{formatFileSize(availableSpace)} available</span> |
| 70 | </div> | 58 | </div> |
| 71 | </div> | 59 | </div> |
| 72 | ) | 60 | ) |
