on main help sign in
fix(ui): fix cases where compact header and footer bleed off screen (#2279)
commite3376ad117f8cfd267fa8a94221662b45e58d44a authorChristian Rocha <christian@rocha.is> dateSat 21 Feb 2026, 14:01 (8 months ago) parent12a6372
3 files changed+14−10
internal/ui/model/header.go+10−8 internal/ui/model/status.go+3−1 internal/ui/model/ui.go+1−1
internal/ui/model/header.go+10−8
@@ -17,10 +17,11 @@ import (
1717)
1818
1919const (
20− headerDiag = "╱"
21− minHeaderDiags = 3
22− leftPadding = 1
23− rightPadding = 1
20+ headerDiag = "╱"
21+ minHeaderDiags = 3
22+ leftPadding = 1
23+ rightPadding = 1
24+ diagToDetailsSpacing = 1 // space between diagonal pattern and details section
2425)
2526
2627type header struct {
@@ -73,7 +74,7 @@ func (h *header) drawHeader(
7374 var b strings.Builder
7475 b.WriteString(h.compactLogo)
7576
76− availDetailWidth := width - leftPadding - rightPadding - lipgloss.Width(b.String()) - minHeaderDiags
77+ availDetailWidth := width - leftPadding - rightPadding - lipgloss.Width(b.String()) - minHeaderDiags - diagToDetailsSpacing
7778 details := renderHeaderDetails(
7879 h.com,
7980 session,
@@ -86,7 +87,8 @@ func (h *header) drawHeader(
8687 lipgloss.Width(b.String()) -
8788 lipgloss.Width(details) -
8889 leftPadding -
89− rightPadding
90+ rightPadding -
91+ diagToDetailsSpacing
9092
9193 if remainingWidth > 0 {
9294 b.WriteString(t.Header.Diagonals.Render(
@@ -143,8 +145,8 @@ func renderHeaderDetails(
143145 const dirTrimLimit = 4
144146 cfg := com.Config()
145147 cwd := fsext.DirTrim(fsext.PrettyPath(cfg.WorkingDir()), dirTrimLimit)
146− cwd = ansi.Truncate(cwd, max(0, availWidth-lipgloss.Width(metadata)), "…")
147148 cwd = t.Header.WorkingDir.Render(cwd)
148149
149− return cwd + metadata
150+ result := cwd + metadata
151+ return ansi.Truncate(result, max(0, availWidth), "…")
150152}
internal/ui/model/status.go+3−1
@@ -46,7 +46,9 @@ func (s *Status) ClearInfoMsg() {
4646
4747// SetWidth sets the width of the status bar and help view.
4848func (s *Status) SetWidth(width int) {
49− s.help.SetWidth(width)
49+ helpStyle := s.com.Styles.Status.Help
50+ horizontalPadding := helpStyle.GetPaddingLeft() + helpStyle.GetPaddingRight()
51+ s.help.SetWidth(width - horizontalPadding)
5052}
5153
5254// ShowingAll returns whether the full help view is shown.
internal/ui/model/ui.go+1−1
@@ -1815,7 +1815,7 @@ func (m *UI) drawHeader(scr uv.Screen, area uv.Rectangle) {
18151815 m.session,
18161816 m.isCompact,
18171817 m.detailsOpen,
1818− m.width,
1818+ area.Dx(),
18191819 )
18201820}
18211821