summaryrefslogtreecommitdiffhomepage
path: root/packages/tui/internal/components
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-07-19 17:55:01 -0400
committerDax Raad <[email protected]>2025-07-19 17:55:01 -0400
commit9af92b6914a630ca62b91d181fbf758beb3e9a21 (patch)
tree3c805e6c088dd23bbbc5de2f0b46fbf69fcb5134 /packages/tui/internal/components
parent8f64c4b3129b1e767477c9f3fbae420df7aa7340 (diff)
downloadopencode-9af92b6914a630ca62b91d181fbf758beb3e9a21.tar.gz
opencode-9af92b6914a630ca62b91d181fbf758beb3e9a21.zip
perf: scroll to bottom in thread
Diffstat (limited to 'packages/tui/internal/components')
-rw-r--r--packages/tui/internal/components/chat/messages.go7
1 files changed, 4 insertions, 3 deletions
diff --git a/packages/tui/internal/components/chat/messages.go b/packages/tui/internal/components/chat/messages.go
index 9b6920adf..7d8b1b3a9 100644
--- a/packages/tui/internal/components/chat/messages.go
+++ b/packages/tui/internal/components/chat/messages.go
@@ -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,