diff --git a/src/ocamlorg_frontend/components/pagination.eml b/src/ocamlorg_frontend/components/pagination.eml
index 0daf6a27b8..185adbd9fa 100644
--- a/src/ocamlorg_frontend/components/pagination.eml
+++ b/src/ocamlorg_frontend/components/pagination.eml
@@ -1,36 +1,36 @@
-let link ~base_url ~page ~current =
+let link ~base_url ~page ~current ~query =
let active_class = "border-2 border-current text-primary-600" in
let non_active_class = "border border-body-100 text-lighter hover:bg-gray-50 hover:no-underline" in
- "
class="w-10 h-10 lg:w-14 lg:h-14 rounded-lg flex items-center justify-center <%s if page = current then active_class else non_active_class %>">
<%i page %>
-let left_arrow ~base_url page =
- "
class="w-10 h-10 lg:w-14 lg:h-14 border border-body-100 rounded-lg flex items-center justify-center text-lighter hover:bg-gray-50 hover:no-underline">
<%s! Icons.chevron_left "h-5 w-5" %>
-let right_arrow ~base_url page =
- "
class="w-10 h-10 lg:w-14 lg:h-14 border border-body-100 rounded-lg flex items-center justify-center text-lighter hover:bg-gray-50 hover:no-underline">
<%s! Icons.chevron_right "h-5 w-5" %>
-let render ~total_page_count ~page_number ~base_url =
+let render ~total_page_count ~page_number ~base_url ~query=
- <%s! if page_number != 1 then (left_arrow ~base_url page_number) else "" %>
- <%s! link ~base_url ~page:1 ~current:page_number %>
+ <%s! if page_number != 1 then (left_arrow ~base_url page_number ~query) else "" %>
+ <%s! link ~base_url ~page:1 ~current:page_number ~query %>
<% if page_number >= 4 then ( %>
...
<% ); %>
<% for page = 2 to (total_page_count - 1) do %>
- <%s! if (abs (page_number - page) <= 1) || (page_number = 1 && page = 3) || (page_number = total_page_count && total_page_count - page = 2) then (link ~base_url ~page ~current:page_number) else "" %>
+ <%s! if (abs (page_number - page) <= 1) || (page_number = 1 && page = 3) || (page_number = total_page_count && total_page_count - page = 2) then (link ~base_url ~page ~current:page_number ~query) else "" %>
<% done; %>
<% if total_page_count - page_number >= 3 then ( %>
...
<% ); %>
- <%s! link ~base_url ~page:total_page_count ~current:page_number %>
- <%s! if page_number != total_page_count then (right_arrow ~base_url page_number) else "" %>
+ <%s! link ~base_url ~page:total_page_count ~current:page_number ~query %>
+ <%s! if page_number != total_page_count then (right_arrow ~base_url page_number ~query) else "" %>
diff --git a/src/ocamlorg_frontend/pages/blog.eml b/src/ocamlorg_frontend/pages/blog.eml
index 14e33e0541..2903fbe2d9 100644
--- a/src/ocamlorg_frontend/pages/blog.eml
+++ b/src/ocamlorg_frontend/pages/blog.eml
@@ -64,7 +64,7 @@ Layout.render
<% ); %>
- <%s! Pagination.render ~total_page_count:planet_pages_number ~page_number:planet_page ~base_url:Url.blog %>
+ <%s! Pagination.render ~total_page_count:planet_pages_number ~page_number:planet_page ~base_url:Url.blog ~query:""%>
diff --git a/src/ocamlorg_frontend/pages/packages_search.eml b/src/ocamlorg_frontend/pages/packages_search.eml
index ff4a62e8cd..4f0e8d9b54 100644
--- a/src/ocamlorg_frontend/pages/packages_search.eml
+++ b/src/ocamlorg_frontend/pages/packages_search.eml
@@ -1,4 +1,4 @@
-let render ~total ~search ~page ~number_of_pages ~base_url (packages : Package.package list) = Layout.render ~title:"OCaml Packages · Search Result"
+let render ~total ~search ~page ~number_of_pages (packages : Package.package list) = Layout.render ~title:"OCaml Packages · Search Result"
~description:"Find the package you need to build your application in the thousands of available OCaml packages."
~canonical:(Url.packages_search ^ "?q=" ^ search)
~active_top_nav_item:Header.Packages @@
@@ -111,7 +111,7 @@ let render ~total ~search ~page ~number_of_pages ~base_url (packages : Package.p
<% ); %>
<% ); %>
- <%s! Pagination.render ~total_page_count:number_of_pages ~page_number:page ~base_url:base_url %>
+ <%s! Pagination.render ~total_page_count:number_of_pages ~page_number:page ~base_url:Url.packages_search ~query:search %>
diff --git a/src/ocamlorg_web/lib/handler.ml b/src/ocamlorg_web/lib/handler.ml
index ada916fa21..be821a13d8 100644
--- a/src/ocamlorg_web/lib/handler.ml
+++ b/src/ocamlorg_web/lib/handler.ml
@@ -601,11 +601,9 @@ let packages_search t req =
paginate ~req ~n:50 packages
in
let results = List.map (Package_helper.frontend_package t) current_items in
- let base_url = Url.packages_search ^ "?q=" ^ search ^ "&p="
- in
let search = Dream.from_percent_encoded search in
- Dream.html (Ocamlorg_frontend.packages_search ~total ~search ~page ~number_of_pages ~base_url results)
+ Dream.html (Ocamlorg_frontend.packages_search ~total ~search ~page ~number_of_pages results)
| None -> Dream.redirect req Url.packages
let packages_autocomplete_fragment t req =