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