on main help sign in
feat(ui): optimize ScrollToBottom in lazylist
commit953d181984a5daf537bba6a7c713c343e2e55d6a authorAyman Bagabas <ayman.bagabas@gmail.com> dateMon 8 Dec 2025, 19:42 (1 year ago) parentcd88520
1 file changed+3−5
internal/ui/lazylist/list.go+3−5
internal/ui/lazylist/list.go+3−5
@@ -336,8 +336,7 @@ func (l *List) ScrollToBottom() {
336336
337337 // Scroll to the last item
338338 var totalHeight int
339− var i int
340− for i = len(l.items) - 1; i >= 0; i-- {
339+ for i := len(l.items) - 1; i >= 0; i-- {
341340 item := l.getItem(i)
342341 totalHeight += item.height
343342 if l.gap > 0 && i < len(l.items)-1 {
@@ -349,10 +348,9 @@ func (l *List) ScrollToBottom() {
349348 break
350349 }
351350 }
352− if i < 0 {
351+ if totalHeight < l.height {
353352 // All items fit in the viewport
354− l.offsetIdx = 0
355− l.offsetLine = 0
353+ l.ScrollToTop()
356354 }
357355}
358356