@@ -438,6 +438,7 @@ func (m *Chat) MessageItem(id string) chat.MessageItem {
438func (m *Chat) ToggleExpandedSelectedItem() {
438func (m *Chat) ToggleExpandedSelectedItem() {
439 if expandable, ok := m.list.SelectedItem().(chat.Expandable); ok {
439 if expandable, ok := m.list.SelectedItem().(chat.Expandable); ok {
440 expandable.ToggleExpanded()
440 expandable.ToggleExpanded()
441+ m.list.ScrollToIndex(m.list.Selected())
@@ -538,8 +539,15 @@ func (m *Chat) HandleDelayedClick(msg DelayedClickMsg) bool {
540 // Execute the click action (e.g., expansion).
541 // Execute the click action (e.g., expansion).
541− if clickable, ok := m.list.SelectedItem().(list.MouseClickable); ok {
542+ selectedItem := m.list.SelectedItem()
543+ if clickable, ok := selectedItem.(list.MouseClickable); ok {
542− return clickable.HandleMouseClick(ansi.MouseButton1, msg.X, msg.Y)
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()
549+ m.list.ScrollToIndex(m.list.Selected())
545 return false
553 return false