diff --git a/internal/tui/core/app/view.go b/internal/tui/core/app/view.go index dbdc0f23..b91ebd48 100644 --- a/internal/tui/core/app/view.go +++ b/internal/tui/core/app/view.go @@ -215,7 +215,7 @@ func (a App) renderWaterfall(width int, height int) string { func (a App) renderTranscriptWithScrollbar(totalWidth int, content string) string { scrollbarWidth := a.transcriptScrollbarWidth(totalWidth) - if scrollbarWidth <= 0 { + if scrollbarWidth <= 0 || a.transcriptMaxOffset() <= 0 { return a.styles.streamContent.Render(content) } @@ -237,9 +237,8 @@ func (a App) renderTranscriptScrollbar(width int, height int) string { return "" } - track := strings.Repeat("|", width) - thumb := strings.Repeat("#", width) - trackStyle := lipgloss.NewStyle().Foreground(lipgloss.Color(oliveGray)) + blank := strings.Repeat(" ", width) + thumb := strings.Repeat("█", width) thumbStyle := lipgloss.NewStyle().Foreground(lipgloss.Color(purpleAccent)).Bold(true) maxOffset := a.transcriptMaxOffset() @@ -262,7 +261,7 @@ func (a App) renderTranscriptScrollbar(width int, height int) string { lines = append(lines, thumbStyle.Render(thumb)) continue } - lines = append(lines, trackStyle.Render(track)) + lines = append(lines, blank) } return lipgloss.JoinVertical(lipgloss.Left, lines...) } diff --git a/internal/tui/core/app/view_test.go b/internal/tui/core/app/view_test.go index 6446944e..dcdbba91 100644 --- a/internal/tui/core/app/view_test.go +++ b/internal/tui/core/app/view_test.go @@ -769,6 +769,8 @@ func TestRenderActivityLineAndScrollbarHelpers(t *testing.T) { app.transcript.SetYOffset(3) if got := app.renderTranscriptScrollbar(2, 5); got == "" { t.Fatalf("expected non-empty scrollbar when transcript is scrollable") + } else if !strings.Contains(got, "█") { + t.Fatalf("expected scrollbar thumb to use solid block glyph, got %q", got) } }