@@ -438,6 +438,7 @@ func (m *Chat) MessageItem(id string) chat.MessageItem {
438438func (m *Chat) ToggleExpandedSelectedItem() {
439439 if expandable, ok := m.list.SelectedItem().(chat.Expandable); ok {
440440 expandable.ToggleExpanded()
441+ m.list.ScrollToIndex(m.list.Selected())
441442 }
442443}
443444
@@ -538,8 +539,15 @@ func (m *Chat) HandleDelayedClick(msg DelayedClickMsg) bool {
538539 }
539540
540541 // Execute the click action (e.g., expansion).
541− if clickable, ok := m.list.SelectedItem().(list.MouseClickable); ok {
542− return clickable.HandleMouseClick(ansi.MouseButton1, msg.X, msg.Y)
542+ selectedItem := m.list.SelectedItem()
543+ if clickable, ok := selectedItem.(list.MouseClickable); ok {
544+ handled := clickable.HandleMouseClick(ansi.MouseButton1, msg.X, msg.Y)
545+ // Toggle expansion if applicable.
546+ if expandable, ok := selectedItem.(chat.Expandable); ok {
547+ expandable.ToggleExpanded()
548+ }
549+ m.list.ScrollToIndex(m.list.Selected())
550+ return handled
543551 }
544552
545553 return false