From 13ae07ae60a5e0d1bd3ff29e7ebbb880f429f44d Mon Sep 17 00:00:00 2001 From: mikestefanello <552328+mikestefanello@users.noreply.github.com> Date: Sat, 19 Apr 2025 10:55:21 -0400 Subject: [PATCH] Added paging. --- pkg/ui/pages/entity.go | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/pkg/ui/pages/entity.go b/pkg/ui/pages/entity.go index ba7de96..9420803 100644 --- a/pkg/ui/pages/entity.go +++ b/pkg/ui/pages/entity.go @@ -17,6 +17,7 @@ import ( . "github.com/mikestefanello/pagoda/pkg/ui/components" "github.com/mikestefanello/pagoda/pkg/ui/layouts" . "maragu.dev/gomponents" + . "maragu.dev/gomponents/components" . "maragu.dev/gomponents/html" ) @@ -198,7 +199,14 @@ func AdminEntityList(ctx echo.Context, params AdminEntityListParams) error { return g } - // TODO pager + pagedHref := func(page int) string { + return fmt.Sprintf("%s?%s=%d", + r.Path(routenames.AdminEntityList(params.EntityType.Name)), + pager.QueryKey, + page, + ) + } + return r.Render(layouts.Admin, Group{ ButtonLink( r.Path(routenames.AdminEntityAdd(params.EntityType.Name)), @@ -212,5 +220,24 @@ func AdminEntityList(ctx echo.Context, params AdminEntityListParams) error { ), TBody(genRows()), ), + Nav( + Class("pagination"), + A( + Classes{ + "pagination-previous": true, + "is-disabled": params.EntityList.Page == 1, + }, + If(params.EntityList.Page != 1, Href(pagedHref(params.EntityList.Page-1))), + Text("Previous page"), + ), + A( + Classes{ + "pagination-previous": true, + "is-disabled": !params.EntityList.HasNextPage, + }, + If(params.EntityList.HasNextPage, Href(pagedHref(params.EntityList.Page+1))), + Text("Next page"), + ), + ), }) }