// Human-readable byte sizes for maintenance summaries ("2.4 GB reclaimable"). // // Promoted out of the cleanup cards, which had grown byte-identical private // copies (VideoDedupCard, GatedPurgeCard) and were about to grow a third for // the attachment reclaim. Binary units (1 KB = 1024 B) — these numbers come // from st_size / SUM(size_bytes), so they describe disk, not marketing. // // NOT the same shape as the `formatBytes` helpers in SystemStatsCards, // BackupRunsTable and PostCard — those differ in units, precision and // zero-handling. Left alone deliberately rather than force-fitted here. export function humanBytes (n) { const b = Number(n || 0) if (b >= 1 << 30) return (b / (1 << 30)).toFixed(1) + ' GB' if (b >= 1 << 20) return (b / (1 << 20)).toFixed(1) + ' MB' if (b >= 1 << 10) return (b / (1 << 10)).toFixed(1) + ' KB' return b + ' B' }