From dcfb99149aa80ad308a48445188d0a3555c6ec40 Mon Sep 17 00:00:00 2001 From: jondewijones Date: Fri, 19 Jun 2026 22:34:46 +0100 Subject: [PATCH] fix active link highlighting where data-admin/series/migration-1 url would trigger migration and vice versa --- src/components/layout/layoutSetup.js | 4 +++- src/components/layout/layoutSetup.test.js | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/components/layout/layoutSetup.js b/src/components/layout/layoutSetup.js index be5e3dbc..6a3f5acf 100644 --- a/src/components/layout/layoutSetup.js +++ b/src/components/layout/layoutSetup.js @@ -26,7 +26,9 @@ const setActiveNavItem = (currentPath) => { let activeLink = null; NAVIGATION_OPTIONS.forEach(item => { const navOptionRoot = item.url.split("/data-admin")[1]; - if (currentPath.includes(navOptionRoot) && navOptionRoot.length) { + const isMatch = navOptionRoot.length && + (currentPath === navOptionRoot || currentPath.startsWith(`${navOptionRoot}/`)); + if (isMatch) { activeLink = item.url; } }); diff --git a/src/components/layout/layoutSetup.test.js b/src/components/layout/layoutSetup.test.js index 0c29e27b..39575dfd 100644 --- a/src/components/layout/layoutSetup.test.js +++ b/src/components/layout/layoutSetup.test.js @@ -29,5 +29,12 @@ describe("setActiveNavItems", () => { expect(setActiveNavItem("/series")).toBe("/data-admin/series"); expect(setActiveNavItem("/series/dataset-id")).toBe("/data-admin/series"); expect(setActiveNavItem("/series/foo/bar/test")).toBe("/data-admin/series"); + expect(setActiveNavItem("/series/migration")).toBe("/data-admin/series"); + expect(setActiveNavItem("/series/migration-test-1")).toBe("/data-admin/series"); + expect(setActiveNavItem("/migration")).toBe("/data-admin/migration"); + expect(setActiveNavItem("/migration/migration-id")).toBe("/data-admin/migration"); + expect(setActiveNavItem("/migration/test")).toBe("/data-admin/migration"); + expect(setActiveNavItem("/migration/series")).toBe("/data-admin/migration"); + expect(setActiveNavItem("/migration/series-test-1")).toBe("/data-admin/migration"); }); }); \ No newline at end of file