refactor(messageslist): track end with the list builder

This commit is contained in:
ayn2op 2026-10-04 00:50:50 -04:00
parent f9bb10d846
commit 39ef4c93cc
3 changed files with 4 additions and 5 deletions

2
go.mod
View file

@ -15,7 +15,7 @@ require (
github.com/andybalholm/brotli v1.2.6
github.com/ayn2op/arikawa/v3 v3.0.0-20260929021956-7d0802bf4d7c
github.com/ayn2op/ningen/v3 v3.0.1-0.20260929010920-29794d5fa70e
github.com/ayn2op/tview v0.0.0-20261004032233-8a715f5225e6
github.com/ayn2op/tview v0.0.0-20261004194222-a506691173ce
github.com/bogdanfinn/fhttp v0.6.9
github.com/bogdanfinn/tls-client v1.16.0
github.com/gdamore/tcell/v3 v3.5.0

4
go.sum
View file

@ -14,8 +14,8 @@ github.com/ayn2op/arikawa/v3 v3.0.0-20260929021956-7d0802bf4d7c h1:Qkl3W5RXzUQUR
github.com/ayn2op/arikawa/v3 v3.0.0-20260929021956-7d0802bf4d7c/go.mod h1:SHqcr+EmZKeNtVKZybHJn4HNz+ufA1XbeKNSTigBCEE=
github.com/ayn2op/ningen/v3 v3.0.1-0.20260929010920-29794d5fa70e h1:QAei/IVEyZV7GcpkpcFUh37+QRqwrt57z7OT3ciHrhI=
github.com/ayn2op/ningen/v3 v3.0.1-0.20260929010920-29794d5fa70e/go.mod h1:RsvYiMzi4Si1F7vmml5NCL2DaKIZXkNUQC7QlGTMtCw=
github.com/ayn2op/tview v0.0.0-20261004032233-8a715f5225e6 h1:Ja2H6nUN2NnXcpQ9TAf1HPNkAsurCIhSsVGHIEMrcIw=
github.com/ayn2op/tview v0.0.0-20261004032233-8a715f5225e6/go.mod h1:oRPTSZgaEJPhv3dmmNvo6grBq/BemrLG3wFQLMTZJkY=
github.com/ayn2op/tview v0.0.0-20261004194222-a506691173ce h1:QbE9slkt2GwIw9zmE8ubmn+mejNsvfFaUp/4IOB5eBY=
github.com/ayn2op/tview v0.0.0-20261004194222-a506691173ce/go.mod h1:oRPTSZgaEJPhv3dmmNvo6grBq/BemrLG3wFQLMTZJkY=
github.com/bdandy/go-errors v1.2.2 h1:WdFv/oukjTJCLa79UfkGmwX7ZxONAihKu4V0mLIs11Q=
github.com/bdandy/go-errors v1.2.2/go.mod h1:NkYHl4Fey9oRRdbB1CoC6e84tuqQHiqrOcZpqFEkBxM=
github.com/bdandy/go-socks4 v1.2.3 h1:Q6Y2heY1GRjCtHbmlKfnwrKVU/k81LS8mRGLRlmDlic=

View file

@ -79,7 +79,6 @@ func NewModel(cfg *config.Config, state *ningen.State) Model {
renderer: markdown.NewRenderer(cfg),
}
ml.selectionState.SetTrackEnd(true)
ml.selectionState.ScrollToEnd()
ml.scrollBarVisibility = cfg.Theme.ScrollBar.Visibility.ScrollBarVisibility
ml.scrollBar = scrollbar.New().
@ -110,6 +109,7 @@ func (ml *Model) listView(focused bool) list.Widget {
return list.New(ml.selectionState, len(ml.items), ml.buildItem).
SelectedStyle(ml.cfg.Theme.MessagesList.SelectedMessageStyle.Style).
ScrollBar(ml.scrollBar, ml.scrollBarVisibility).
TrackEnd(true).
Keybind(scrollKeybind(ml.cfg.Keybinds.MessagesList.ScrollKeybinds)).
Focused(focused).
OnChange(func(a list.Change) tview.Msg { return listMsg(a) })
@ -186,7 +186,6 @@ func (ml *Model) indexOf(channelID discord.ChannelID, id discord.MessageID) int
func (ml *Model) reset() {
ml.items = nil
ml.selectionState = list.NewSelectionState()
ml.selectionState.SetTrackEnd(true)
ml.selectionState.ScrollToEnd()
}