diff --git a/content/mos-diner/index.md b/content/mos-diner/index.md index f43cdc8b5148..61488b6f8b13 100644 --- a/content/mos-diner/index.md +++ b/content/mos-diner/index.md @@ -10,6 +10,7 @@ versions: contentType: landing layout: bespoke-landing heroTheme: mos-diner +hideSidebar: true children: - /content/copilot/how-tos/copilot-on-github/copilot-for-github-tasks/use-copilot-to-create-or-update-issues - /content/copilot/tutorials/copilot-cookbook/communicate-effectively/summarize-repository-activity diff --git a/src/fixtures/fixtures/content/get-started/sidebar-test/hidden-sidebar.md b/src/fixtures/fixtures/content/get-started/sidebar-test/hidden-sidebar.md new file mode 100644 index 000000000000..01b80569e3a2 --- /dev/null +++ b/src/fixtures/fixtures/content/get-started/sidebar-test/hidden-sidebar.md @@ -0,0 +1,11 @@ +--- +title: Hidden Sidebar Page +intro: 'Test page for the hideSidebar frontmatter' +versions: + fpt: '*' + ghes: '*' + ghec: '*' +hideSidebar: true +--- + +This page renders without the doc-tree sidebar. diff --git a/src/fixtures/fixtures/content/get-started/sidebar-test/index.md b/src/fixtures/fixtures/content/get-started/sidebar-test/index.md index a8e24ea5071b..068b76be9a18 100644 --- a/src/fixtures/fixtures/content/get-started/sidebar-test/index.md +++ b/src/fixtures/fixtures/content/get-started/sidebar-test/index.md @@ -10,6 +10,7 @@ sidebarLink: href: /get-started/sidebar-test children: - /test-child + - /hidden-sidebar --- This is a test page for the sidebar custom link functionality. diff --git a/src/fixtures/tests/sidebar.ts b/src/fixtures/tests/sidebar.ts index 2b2ae2ed4769..18b1325dff23 100644 --- a/src/fixtures/tests/sidebar.ts +++ b/src/fixtures/tests/sidebar.ts @@ -14,6 +14,14 @@ describe('sidebar', () => { expect($('[data-testid="sidebar-mobile-toggle"]').length).toBe(1) }) + test('hideSidebar frontmatter drops the sidebar and its toggles', async () => { + const $: CheerioAPI = await getDOM('/get-started/sidebar-test/hidden-sidebar') + expect($('[data-container="nav"]').length).toBe(0) + expect($('[data-testid="sidebar-collapse-toggle"]').length).toBe(0) + expect($('[data-testid="sidebar-mobile-toggle"]').length).toBe(0) + expect($('[data-testid="docs-secondary-bar"]').length).toBe(1) + }) + test('REST pages get the REST sidebar', async () => { const $: CheerioAPI = await getDOM('/rest') expect($('[data-testid=rest-sidebar-reference]').length).toBe(1) diff --git a/src/frame/components/DefaultLayout.tsx b/src/frame/components/DefaultLayout.tsx index 8cff2d7ac51c..39e0ba86b087 100644 --- a/src/frame/components/DefaultLayout.tsx +++ b/src/frame/components/DefaultLayout.tsx @@ -276,13 +276,14 @@ type LayoutBodyProps = { } const LayoutBody = ({ children, hasDrawer }: LayoutBodyProps) => { const { collapsed, mobileNavOpen } = useSidebarCollapsed() - const { currentProduct } = useMainContext() + const { currentProduct, page } = useMainContext() const isSearchResultsPage = currentProduct?.id === 'search' + const hideSidebar = page?.hideSidebar && !isSearchResultsPage const miniTocItems = useMiniTocItems() const hasSubBar = miniTocItems.length > 1 return (