ref: 9ab6febaf561d60c49f62f003245e80340873ffc
dir: /pages.go/
package main
import (
"context"
"fmt"
"strings"
"codeberg.org/penny64/hellclient-go-mastodon"
)
type StatusLoader interface {
Load(int) *[]PageItem
}
type Page struct {
loader StatusLoader
index int
}
type NotificationPages struct {
hc *Hellclient
page *mastodon.Pagination
}
type PageItem struct {
itemtext string
lines int
}
func (noticeData *NotificationPages) Load(limit int) *[]PageItem {
if noticeData.page == nil {
noticeData.page = &mastodon.Pagination{}
}
noticeData.page.Limit = int64(limit)
notices, err := noticeData.hc.client.GetNotifications(context.Background(), noticeData.page)
if err != nil {
fmt.Printf("Error getting notification page: %s\n", err)
}
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)
}
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)
}
return sb.String()
}
func (page *Page) Next() {
}
func (page *Page) Prev() {
}
func (page *Page) Current() int {
return 0
}