From 8705778d3ad825cf04a7cfc75eb3a12c69d0f6d2 Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Sun, 9 Oct 2022 17:22:30 +0330 Subject: [PATCH] make the navigation sidebar on each version's landing page hidden by default. fixes #46. --- src/lib/useActiveVersionPath.ts | 11 +++++++++++ src/lib/useIsVersionIndexPage.tsx | 9 +++++++++ src/theme/Layout/index.tsx | 13 +++---------- 3 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 src/lib/useActiveVersionPath.ts create mode 100644 src/lib/useIsVersionIndexPage.tsx diff --git a/src/lib/useActiveVersionPath.ts b/src/lib/useActiveVersionPath.ts new file mode 100644 index 0000000..7c17886 --- /dev/null +++ b/src/lib/useActiveVersionPath.ts @@ -0,0 +1,11 @@ +import { useActivePluginAndVersion } from '@docusaurus/plugin-content-docs/client' + +export const useActiveVersionPath = () => { + const data = useActivePluginAndVersion({ failfast: false }) + + if (data) { + return data.activeVersion.path + } + + return '/' +} diff --git a/src/lib/useIsVersionIndexPage.tsx b/src/lib/useIsVersionIndexPage.tsx new file mode 100644 index 0000000..b8eabcf --- /dev/null +++ b/src/lib/useIsVersionIndexPage.tsx @@ -0,0 +1,9 @@ +import { useLocation } from '@docusaurus/router' +import { useActiveVersionPath } from './useActiveVersionPath' + +export const useIsVersionIndexPage = () => { + const { pathname } = useLocation() + const versionPath = useActiveVersionPath() + + return pathname === versionPath +} diff --git a/src/theme/Layout/index.tsx b/src/theme/Layout/index.tsx index df8d57e..cd2e5cf 100644 --- a/src/theme/Layout/index.tsx +++ b/src/theme/Layout/index.tsx @@ -1,19 +1,12 @@ -import { useLocation } from '@docusaurus/router' -import useDocusaurusContext from '@docusaurus/useDocusaurusContext' import { globalStore } from '@site/src/containers/GlobalStore' +import { useIsVersionIndexPage } from '@site/src/lib/useIsVersionIndexPage' import Layout from '@theme-original/Layout' import React from 'react' import './styles.scss' export default function LayoutWrapper(props) { - const { pathname } = useLocation() - const { - siteConfig: { baseUrl }, - } = useDocusaurusContext() - - const store = globalStore.useCreateStore({ - hiddenSidebar: pathname === baseUrl, - }) + const isIndexPage = useIsVersionIndexPage() + const store = globalStore.useCreateStore({ hiddenSidebar: isIndexPage }) return (