From 32dbc5cb2b91ed7dbe158607c8064f0e4bc4ca02 Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Fri, 8 Aug 2025 17:06:09 +0300 Subject: [PATCH] Move centering active version to numbered pagination js module --- app/assets/javascripts/index/element.js | 21 ++----------------- app/assets/javascripts/numbered_pagination.js | 16 ++++++++++++++ 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/app/assets/javascripts/index/element.js b/app/assets/javascripts/index/element.js index 4b60a810b..0dd7fe534 100644 --- a/app/assets/javascripts/index/element.js +++ b/app/assets/javascripts/index/element.js @@ -5,7 +5,7 @@ const isOfExpectedLanguage = ({ language }) => languagesToRequest[0].startsWith(language) || language === "mul"; $(document).on("click", "a[href='#versions-navigation-active-page-item']", function (e) { - scrollToActiveVersion(); + $(document).trigger("numbered_pagination:center"); $("#versions-navigation-active-page-item a.page-link").trigger("focus"); e.preventDefault(); }); @@ -43,7 +43,7 @@ page._removeObject = function () {}; function initVersionsNavigation() { - scrollToActiveVersion(); + $(document).trigger("numbered_pagination:center"); const $scrollableList = $("#versions-navigation-list-middle"); const [scrollableFirstItem] = $scrollableList.children().first(); @@ -95,23 +95,6 @@ return page; }; - function scrollToActiveVersion() { - const [scrollableList] = $("#versions-navigation-list-middle"); - - if (!scrollableList) return; - - const [activeStartItem] = $("#versions-navigation-list-start #versions-navigation-active-page-item"); - const [activeScrollableItem] = $("#versions-navigation-list-middle #versions-navigation-active-page-item"); - - if (activeStartItem) { - scrollableList.scrollLeft = 0; - } else if (activeScrollableItem) { - scrollableList.scrollLeft = Math.round(activeScrollableItem.offsetLeft - (scrollableList.offsetWidth / 2) + (activeScrollableItem.offsetWidth / 2)); - } else { - scrollableList.scrollLeft = scrollableList.scrollWidth - scrollableList.offsetWidth; - } - } - function previewWikidataValue($btn) { if (!OSM.WIKIDATA_API_URL) return; const items = $btn.data("qids"); diff --git a/app/assets/javascripts/numbered_pagination.js b/app/assets/javascripts/numbered_pagination.js index 88ff93456..9e16e244e 100644 --- a/app/assets/javascripts/numbered_pagination.js +++ b/app/assets/javascripts/numbered_pagination.js @@ -1,2 +1,18 @@ (function () { + $(document).on("numbered_pagination:center", function () { + const [scrollableList] = $("#versions-navigation-list-middle"); + + if (!scrollableList) return; + + const [activeStartItem] = $("#versions-navigation-list-start #versions-navigation-active-page-item"); + const [activeScrollableItem] = $("#versions-navigation-list-middle #versions-navigation-active-page-item"); + + if (activeStartItem) { + scrollableList.scrollLeft = 0; + } else if (activeScrollableItem) { + scrollableList.scrollLeft = Math.round(activeScrollableItem.offsetLeft - (scrollableList.offsetWidth / 2) + (activeScrollableItem.offsetWidth / 2)); + } else { + scrollableList.scrollLeft = scrollableList.scrollWidth - scrollableList.offsetWidth; + } + }); }()); -- 2.39.5