From 75a58d340654a525fc8334e23db0e218a23fdce4 Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Wed, 29 May 2024 07:46:33 +0300 Subject: [PATCH] Update secondary nav active item highlight from js router --- app/assets/javascripts/router.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/assets/javascripts/router.js b/app/assets/javascripts/router.js index d890f38a480..c4e52417004 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; };