perf: scroll to bottom in thread
Some checks are pending
deploy / deploy (push) Waiting to run
publish / publish (push) Waiting to run

This commit is contained in:
Dax Raad 2025-07-19 17:55:01 -04:00
parent 8f64c4b312
commit 9af92b6914
2 changed files with 6 additions and 5 deletions

View file

@ -102,9 +102,6 @@ func (m *messagesComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
m.loading = false
m.tail = m.viewport.AtBottom()
m.viewport = msg.viewport
if m.tail {
m.viewport.GotoBottom()
}
if m.dirty {
cmds = append(cmds, m.renderView())
}
@ -138,6 +135,7 @@ func (m *messagesComponent) renderView() tea.Cmd {
m.rendering = true
viewport := m.viewport
tail := m.tail
return func() tea.Msg {
measure := util.Measure("messages.renderView")
@ -402,6 +400,9 @@ func (m *messagesComponent) renderView() tea.Cmd {
content := "\n" + strings.Join(blocks, "\n\n")
viewport.SetHeight(m.height - lipgloss.Height(m.header))
viewport.SetContent(content)
if tail {
viewport.GotoBottom()
}
return renderCompleteMsg{
viewport: viewport,

View file

@ -528,17 +528,17 @@ func (a appModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
}
func (a appModel) View() string {
measure := util.Measure("app.View")
defer measure()
t := theme.CurrentTheme()
var mainLayout string
measure := util.Measure("app.View")
if a.app.Session.ID == "" {
mainLayout = a.home()
} else {
mainLayout = a.chat()
}
measure()
mainLayout = styles.NewStyle().
Background(t.Background()).
Padding(0, 2).