diff --git a/pages/user.go b/pages/user.go index b6f21de..58e2a4c 100644 --- a/pages/user.go +++ b/pages/user.go @@ -1,6 +1,7 @@ package pages import ( + "strconv" "sync" "codeberg.org/video-prize-ranch/rimgo/api" @@ -14,6 +15,16 @@ func HandleUser(c *fiber.Ctx) error { c.Set("Cache-Control", "public,max-age=604800") c.Set("Content-Security-Policy", "default-src 'none'; media-src 'self'; style-src 'unsafe-inline' 'self'; img-src 'self'; font-src 'self'; block-all-mixed-content") + page := "0" + if c.Query("page") != "" { + page = c.Query("page") + } + + pageNumber, err := strconv.Atoi(c.Query("page")) + if err != nil { + pageNumber = 0 + } + wg := sync.WaitGroup{} wg.Add(2) user, err := types.User{}, error(nil) @@ -28,7 +39,7 @@ func HandleUser(c *fiber.Ctx) error { submissions, err := []types.Submission{}, error(nil) go func() { defer wg.Done() - submissions, err = api.FetchSubmissions(c.Params("userID"), "newest", "0") + submissions, err = api.FetchSubmissions(c.Params("userID"), "newest", page) }() if err != nil { return err @@ -38,5 +49,8 @@ func HandleUser(c *fiber.Ctx) error { return c.Render("user", fiber.Map{ "user": user, "submissions": submissions, + "page": page, + "nextPage": pageNumber + 1, + "prevPage": pageNumber - 1, }) } diff --git a/static/css/user.css b/static/css/user.css index a0207cf..1e3b607 100644 --- a/static/css/user.css +++ b/static/css/user.css @@ -60,4 +60,10 @@ video:not(:fullscreen) { .post__meta .material-icons-outlined { font-size: 1rem; +} + +.pageSelector { + display: flex; + justify-content: space-between; + margin-top: 1em; } \ No newline at end of file diff --git a/views/partials/post.hbs b/views/partials/post.hbs index a186060..208f2ac 100644 --- a/views/partials/post.hbs +++ b/views/partials/post.hbs @@ -1,7 +1,7 @@
{{#equal Cover.Type "video"}} -
+ +
+ {{#equal page "0" }} + {{else}} + Previous page + {{/equal}} + Next page +
{{> partials/footer }}