diff --git a/internal/tui/components/chat/sidebar/sidebar.go b/internal/tui/components/chat/sidebar/sidebar.go index 617c862d83c90bd9aa323b7d547591cf97cdd1bc..3fa08ce021d0fcac1ce7dc9668d46198f6d08055 100644 --- a/internal/tui/components/chat/sidebar/sidebar.go +++ b/internal/tui/components/chat/sidebar/sidebar.go @@ -250,6 +250,7 @@ func (m *sidebarCmp) logoBlock() string { TitleColorB: t.Primary, CharmColor: t.Secondary, VersionColor: t.Primary, + Width: m.width - 2, }) } diff --git a/internal/tui/components/logo/logo.go b/internal/tui/components/logo/logo.go index e6db4347d62421e1260f550ec2c974018b695f58..dbd3229e9b6c49b9f59b1a477fac9a5dc1c84d6e 100644 --- a/internal/tui/components/logo/logo.go +++ b/internal/tui/components/logo/logo.go @@ -98,7 +98,16 @@ func Render(version string, compact bool, o Opts) string { // Return the wide version. const hGap = " " - return lipgloss.JoinHorizontal(lipgloss.Top, leftField.String(), hGap, crush, hGap, rightField.String()) + logo := lipgloss.JoinHorizontal(lipgloss.Top, leftField.String(), hGap, crush, hGap, rightField.String()) + if o.Width > 0 { + // Truncate the logo to the specified width. + lines := strings.Split(logo, "\n") + for i, line := range lines { + lines[i] = ansi.Truncate(line, o.Width, "") + } + logo = strings.Join(lines, "\n") + } + return logo } // renderWord renders letterforms to fork a word.