Fix prev pagination

This commit is contained in:
r 2019-12-15 06:55:13 +00:00
parent e129ea922e
commit 51a4b16af5
3 changed files with 40 additions and 14 deletions

View File

@ -207,10 +207,9 @@ func (svc *service) ServeTimelinePage(ctx context.Context, client io.Writer,
var nextLink, prevLink string var nextLink, prevLink string
var pg = mastodon.Pagination{ var pg = mastodon.Pagination{
MaxID: maxID, MaxID: maxID,
SinceID: sinceID, MinID: minID,
MinID: minID, Limit: 20,
Limit: 20,
} }
statuses, err := c.GetTimelineHome(ctx, &pg) statuses, err := c.GetTimelineHome(ctx, &pg)
@ -218,14 +217,31 @@ func (svc *service) ServeTimelinePage(ctx context.Context, client io.Writer,
return err return err
} }
if len(maxID) > 0 && len(statuses) > 0 {
hasPrev = true
prevLink = fmt.Sprintf("/timeline?min_id=%s", statuses[0].ID)
}
if len(minID) > 0 && len(pg.MinID) > 0 {
newStatuses, err := c.GetTimelineHome(ctx, &mastodon.Pagination{MinID: pg.MinID, Limit: 20})
if err != nil {
return err
}
newStatusesLen := len(newStatuses)
if newStatusesLen == 20 {
hasPrev = true
prevLink = fmt.Sprintf("/timeline?min_id=%s", pg.MinID)
} else {
i := 20 - newStatusesLen - 1
if len(statuses) > i {
hasPrev = true
prevLink = fmt.Sprintf("/timeline?min_id=%s", statuses[i].ID)
}
}
}
if len(pg.MaxID) > 0 { if len(pg.MaxID) > 0 {
hasNext = true hasNext = true
nextLink = fmt.Sprintf("/timeline?max_id=%s", pg.MaxID) nextLink = fmt.Sprintf("/timeline?max_id=%s", pg.MaxID)
} }
if len(pg.SinceID) > 0 {
hasPrev = true
prevLink = fmt.Sprintf("/timeline?since_id=%s", pg.SinceID)
}
data := renderer.NewTimelinePageTemplateData(statuses, hasNext, nextLink, hasPrev, prevLink) data := renderer.NewTimelinePageTemplateData(statuses, hasNext, nextLink, hasPrev, prevLink)
err = svc.renderer.RenderTimelinePage(ctx, client, data) err = svc.renderer.RenderTimelinePage(ctx, client, data)

View File

@ -135,3 +135,11 @@
font-size: 11pt; font-size: 11pt;
font-family: initial; font-family: initial;
} }
.pagination {
margin: 4px;
}
.pagination a {
margin: 0 8px;
}

View File

@ -16,10 +16,12 @@
{{template "status.tmpl" .}} {{template "status.tmpl" .}}
{{end}} {{end}}
{{if .HasNext}} <div class="pagination">
<a href="{{.NextLink}}"> next </a> {{if .HasPrev}}
{{end}} <a href="{{.PrevLink}}">prev</a>
{{if .HasPrev}} {{end}}
<a href="{{.PrevLink}}"> next </a> {{if .HasNext}}
{{end}} <a href="{{.NextLink}}">next</a>
{{end}}
</div>
{{template "footer.tmpl"}} {{template "footer.tmpl"}}