// Zentrale Formatierungs-Helfer (vorher in einzelnen Views dupliziert).

/** Bytes → GB als String mit einer Nachkommastelle (z.B. "14.1"). */
export function gb(b: number): string {
  return (b / 1024 ** 3).toFixed(1)
}

/** Bytes → "1.2 GB" / "512 MB"; leer bei 0/undefined. */
export function fmtBytes(b?: number): string {
  if (!b) return ""
  if (b > 1024 ** 3) return `${(b / 1024 ** 3).toFixed(1)} GB`
  return `${(b / 1024 ** 2).toFixed(0)} MB`
}

/** Bytes → "1.2 GB" / "512 MB"; "—" bei 0/undefined/null. */
export function fmtSize(b?: number | null): string {
  if (!b) return "—"
  const g = b / 1024 ** 3
  return g >= 1 ? `${g.toFixed(1)} GB` : `${(b / 1024 ** 2).toFixed(0)} MB`
}

/** Sekunden → "3 min" / "45 s"; leer bei 0/undefined. */
export function fmtEta(s?: number): string {
  if (!s) return ""
  const m = Math.floor(s / 60)
  return m > 0 ? `${m} min` : `${s} s`
}

/** Kontextlänge → "32k"; "—" bei null. */
export function fmtCtx(c: number | null): string {
  return c ? `${Math.round(c / 1024)}k` : "—"
}
