feat(tui): DOWN-first sort, health pulse, filter, and sparkline fixes #11
@@ -61,6 +61,9 @@ func latencySparkline(latencies []time.Duration, width int) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var sb strings.Builder
|
var sb strings.Builder
|
||||||
|
if remaining := width - len(samples); remaining > 0 {
|
||||||
|
sb.WriteString(subtleStyle.Render(strings.Repeat("·", remaining)))
|
||||||
|
}
|
||||||
spread := maxL - minL
|
spread := maxL - minL
|
||||||
for _, l := range samples {
|
for _, l := range samples {
|
||||||
idx := 0
|
idx := 0
|
||||||
@@ -80,10 +83,6 @@ func latencySparkline(latencies []time.Duration, width int) string {
|
|||||||
sb.WriteString(dangerStyle.Render(ch))
|
sb.WriteString(dangerStyle.Render(ch))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if remaining := width - len(samples); remaining > 0 {
|
|
||||||
sb.WriteString(subtleStyle.Render(strings.Repeat("·", remaining)))
|
|
||||||
}
|
|
||||||
return sb.String()
|
return sb.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,6 +97,9 @@ func heartbeatSparkline(statuses []bool, width int) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var sb strings.Builder
|
var sb strings.Builder
|
||||||
|
if remaining := width - len(samples); remaining > 0 {
|
||||||
|
sb.WriteString(subtleStyle.Render(strings.Repeat("·", remaining)))
|
||||||
|
}
|
||||||
for _, up := range samples {
|
for _, up := range samples {
|
||||||
if up {
|
if up {
|
||||||
sb.WriteString(specialStyle.Render("▁"))
|
sb.WriteString(specialStyle.Render("▁"))
|
||||||
@@ -105,10 +107,6 @@ func heartbeatSparkline(statuses []bool, width int) string {
|
|||||||
sb.WriteString(dangerStyle.Render("█"))
|
sb.WriteString(dangerStyle.Render("█"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if remaining := width - len(samples); remaining > 0 {
|
|
||||||
sb.WriteString(subtleStyle.Render(strings.Repeat("·", remaining)))
|
|
||||||
}
|
|
||||||
return sb.String()
|
return sb.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user