ref: dc12017f82c0df2d816a36c78546188976d120cf
parent: 9ab6febaf561d60c49f62f003245e80340873ffc
author: penny <penny@limitedideas.org>
date: Wed Sep 24 13:28:30 EDT 2025
working StatusLoader pagination!
--- a/pages.go
+++ b/pages.go
@@ -15,6 +15,8 @@
type Page struct {loader StatusLoader
index int
+ itembuffer *[]PageItem
+
}
type NotificationPages struct {hc *Hellclient
@@ -37,33 +39,47 @@
}
fmt.Printf("%+v\n", noticeData.page)- notices = reverseArray(notices)
noticeArray := noticeData.hc.RenderNotificationsArray(notices)
-
var itemArray []PageItem
for i, _ := range noticeArray { item := PageItem{itemtext: noticeArray[i]}itemArray = append(itemArray, item)
}
-
+ noticeData.page.MinID = ""
return &itemArray
}
func (page *Page) String() string {- items := page.loader.Load(5)
var sb strings.Builder
-
- for i, _ := range *items {- sb.WriteString((*items)[i].itemtext)
+ if page.itembuffer == nil {+ page.itembuffer = &[]PageItem{}}
+ if len(*page.itembuffer) < (page.index + 5) {+ *page.itembuffer = append(*page.itembuffer, *page.loader.Load(20)...)
+
+ }
+ var items []PageItem
+ if len(*page.itembuffer) >= page.index {+ items = (*page.itembuffer)[page.index:]
+ }
+
+ if len(items) > 5 {+ items = items[:5]
+ }
+ reverseditems := reverseArray(items)
+ for i, _ := range reverseditems {+ sb.WriteString(reverseditems[i].itemtext)
+ }
return sb.String()
}
func (page *Page) Next() {+ page.index = page.index + 5
}
func (page *Page) Prev() {+ page.index = page.index - 5
}
func (page *Page) Current() int {--
⑨