From: Anton Khorev Date: Wed, 29 May 2024 04:46:33 +0000 (+0300) Subject: Update secondary nav active item highlight from js router X-Git-Tag: live~17^2~2 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/21a08ca546377ca2edd074abc8120c19685091b7?ds=sidebyside Update secondary nav active item highlight from js router --- diff --git a/app/assets/javascripts/router.js b/app/assets/javascripts/router.js index d890f38a4..c4e524170 100644 --- a/app/assets/javascripts/router.js +++ b/app/assets/javascripts/router.js @@ -101,6 +101,16 @@ OSM.Router = function (map, rts) { var router = {}; + function updateSecondaryNav() { + $("header nav.secondary > ul > li > a").each(function () { + var active = $(this).attr("href") === window.location.pathname; + + $(this) + .toggleClass("text-secondary", !active) + .toggleClass("text-secondary-emphasis", active); + }); + } + $(window).on("popstate", function (e) { if (!e.originalEvent.state) return; // Is it a real popstate event or just a hash change? var path = window.location.pathname + window.location.search, @@ -110,6 +120,7 @@ OSM.Router = function (map, rts) { currentPath = path; currentRoute = route; currentRoute.run("popstate", currentPath); + updateSecondaryNav(); map.setState(e.originalEvent.state, { animate: false }); }); @@ -124,6 +135,7 @@ OSM.Router = function (map, rts) { currentPath = path; currentRoute = route; currentRoute.run("pushstate", currentPath); + updateSecondaryNav(); return true; };