fix: jumping cursor on tick when filter is set

Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
Hadi
2026-05-30 19:30:22 +02:00
parent 36eab35576
commit ee3e6806c7
+14
View File
@@ -76,14 +76,28 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
} }
case SearchResultMsg: case SearchResultMsg:
var selectedID int64
if m.cursor >= 0 && m.cursor < len(m.entries) {
selectedID = m.entries[m.cursor].ID
}
m.entries = msg.Entries m.entries = msg.Entries
m.cursor = 0 m.cursor = 0
if selectedID != 0 {
for i, e := range m.entries {
if e.ID == selectedID {
m.cursor = i
break
}
}
}
m.searchErr = "" m.searchErr = ""
m.pager.SetTotalPages(len(m.entries)) m.pager.SetTotalPages(len(m.entries))
m.refreshListViewport() m.refreshListViewport()
m.refreshBody() m.refreshBody()
if selectedID == 0 {
m.bodyViewport.SetYOffset(0) m.bodyViewport.SetYOffset(0)
m.bodyViewport.SetXOffset(0) m.bodyViewport.SetXOffset(0)
}
if m.searchKind == searchKindSQL { if m.searchKind == searchKindSQL {
m.acceptSearch() m.acceptSearch()
} }