{{ define "fragments/pagination" }} {{/* Params: Page (pagination.Page), TotalCount (int), BasePath (string), QueryParams (url.Values) */}} {{ $page := .Page }} {{ $totalCount := .TotalCount }} {{ $basePath := .BasePath }} {{ $queryParams := safeUrl .QueryParams.Encode }} {{ $prev := $page.Previous.Offset }} {{ $next := $page.Next.Offset }} {{ $lastPage := sub $totalCount (mod $totalCount $page.Limit) }}
{{ i "chevron-left" "w-4 h-4" }} previous {{ if gt $page.Offset 0 }} 1 {{ end }} {{ if gt $prev $page.Limit }} ... {{ end }} {{ if gt $prev 0 }} {{ add (div $prev $page.Limit) 1 }} {{ end }} {{ add (div $page.Offset $page.Limit) 1 }} {{ if lt $next $lastPage }} {{ add (div $next $page.Limit) 1 }} {{ end }} {{ if lt $next (sub $totalCount (mul 2 $page.Limit)) }} ... {{ end }} {{ if lt $page.Offset $lastPage }} {{ add (div $lastPage $page.Limit) 1 }} {{ end }} next {{ i "chevron-right" "w-4 h-4" }}
{{ end }}