From: Anton Khorev <tony29@yandex.ru>
Date: Tue, 3 Oct 2023 16:17:25 +0000 (+0300)
Subject: Shorten padding on page items if they are too wide
X-Git-Tag: live~1296^2~3
X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/cfa1ce8617430cdec47409a455ea2aead713334e

Shorten padding on page items if they are too wide
---

diff --git a/app/views/browse/_paging_nav.html.erb b/app/views/browse/_paging_nav.html.erb
index cbe8cdefb..778f51a1f 100644
--- a/app/views/browse/_paging_nav.html.erb
+++ b/app/views/browse/_paging_nav.html.erb
@@ -2,18 +2,32 @@
   <h4 class="fs-5 mb-0"><%= heading %></h4>
   <% if pages.page_count > 1 %>
     <ul class="pagination pagination-sm mb-1 ms-auto">
-    <% pagination_items(pages, {}).each do |body, n| %>
-      <% linked = !(n.is_a? String)
-         classes = ["page-item"]
-         classes.push(n) unless linked %>
-      <%= content_tag "li", :class => classes do
-        if linked
-          link_to(body, url_for(page_param => n), :class => "page-link")
-        else
-          content_tag("span", body, :class => "page-link")
-        end
-      end %>
-    <% end %>
+    <%
+      max_width_for_default_padding = 35
+
+      width = 0
+      pagination_items(pages, {}).each do |body, n|
+        width += 2 # padding width
+        width += body.length
+      end
+      link_classes = ["page-link"]
+      link_classes.push("px-1") if width > max_width_for_default_padding
+
+      pagination_items(pages, {}).each do |body, n|
+        linked = !(n.is_a? String)
+        item_classes = ["page-item"]
+        item_classes.push(n) unless linked
+    %>
+    <%= content_tag "li", :class => item_classes do
+          if linked
+            link_to(body, url_for(page_param => n), :class => link_classes)
+          else
+            content_tag("span", body, :class => link_classes)
+          end
+        end %>
+    <%
+      end
+    %>
     </ul>
   <% end %>
 </div>