diff options
Diffstat (limited to 'frontend/components/drive/StorageUsage.tsx')
| -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 | ) |
