diff --git a/src/platform/packages/shared/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx b/src/platform/packages/shared/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx index b8cc8bfd3b8fe..2de8be7d3d51a 100644 --- a/src/platform/packages/shared/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx +++ b/src/platform/packages/shared/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx @@ -209,7 +209,7 @@ describe('builds navigation tree', () => { children: [ { ...panelOpenerNode, - href: '/foo/bar', // Panel opener with a link should not be converted to accordion + href: '/foo/bar', // Panel opener with a link should also be converted to accordion when side nav is collapsed }, ], }, @@ -220,7 +220,7 @@ describe('builds navigation tree', () => { const accordionButtonLabel = queryAllByTestId('accordionToggleBtn').map((c) => c.textContent); - expect(accordionButtonLabel).toEqual(['Group 1']); // Only 1 accordion button (top level) + expect(accordionButtonLabel).toEqual(['Group 1', 'Nested Group 1']); unmount(); } }); diff --git a/src/platform/packages/shared/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx b/src/platform/packages/shared/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx index 03d46b611213c..100b61356a276 100644 --- a/src/platform/packages/shared/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx +++ b/src/platform/packages/shared/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx @@ -60,8 +60,7 @@ const getRenderAs = ( navNode: ChromeProjectNavigationNode, { isSideNavCollapsed }: { isSideNavCollapsed: boolean } ): RenderAs => { - if (isSideNavCollapsed && navNode.renderAs === 'panelOpener' && !nodeHasLink(navNode)) - return 'accordion'; // When the side nav is collapsed, we render panel openers as accordions if they don't have a landing page + if (isSideNavCollapsed && navNode.renderAs === 'panelOpener') return 'accordion'; // When the side nav is collapsed, we render panel openers as accordions if (navNode.renderAs) return navNode.renderAs; if (!navNode.children) return 'item'; return DEFAULT_RENDER_AS; @@ -107,7 +106,7 @@ const getTestSubj = (navNode: ChromeProjectNavigationNode, isActive = false): st }); }; -const serializeNavNode = ( +export const serializeNavNode = ( navNode: ChromeProjectNavigationNode, { isSideNavCollapsed,