import classNames from '~/lib/classNames' import { formatBytes } from '~/lib/util' import { IconAlertTriangle, IconServer } from '@tabler/icons-react' interface StorageProjectionBarProps { totalSize: number // Total disk size in bytes currentUsed: number // Currently used space in bytes projectedAddition: number // Additional space that will be used in bytes } export default function StorageProjectionBar({ totalSize, currentUsed, projectedAddition, }: StorageProjectionBarProps) { const projectedTotal = currentUsed + projectedAddition const currentPercent = (currentUsed / totalSize) * 100 const projectedPercent = (projectedAddition / totalSize) * 100 const projectedTotalPercent = (projectedTotal / totalSize) * 100 const remainingAfter = totalSize - projectedTotal const willExceed = projectedTotal > totalSize // Determine warning level based on projected total const getProjectedColor = () => { if (willExceed) return 'bg-desert-red' if (projectedTotalPercent >= 90) return 'bg-desert-orange' if (projectedTotalPercent >= 75) return 'bg-desert-tan' return 'bg-desert-olive' } const getProjectedGlow = () => { if (willExceed) return 'shadow-desert-red/50' if (projectedTotalPercent >= 90) return 'shadow-desert-orange/50' if (projectedTotalPercent >= 75) return 'shadow-desert-tan/50' return 'shadow-desert-olive/50' } return (