From ad5918eb5c981ac41a84c54adb731db5978cfe98 Mon Sep 17 00:00:00 2001 From: slorber Date: Fri, 19 Jun 2020 17:19:50 +0200 Subject: [PATCH] doc components initial simplification --- .../src/theme/DocPage/index.js | 54 ++++++++++--------- .../src/theme/DocSidebar/index.js | 23 +------- 2 files changed, 32 insertions(+), 45 deletions(-) diff --git a/packages/docusaurus-theme-classic/src/theme/DocPage/index.js b/packages/docusaurus-theme-classic/src/theme/DocPage/index.js index adee2291b8..f73c73cfc9 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocPage/index.js +++ b/packages/docusaurus-theme-classic/src/theme/DocPage/index.js @@ -18,47 +18,53 @@ import {matchPath} from '@docusaurus/router'; import styles from './styles.module.css'; -function DocPage(props) { - const {route: baseRoute, docsMetadata, location} = props; - // case-sensitive route such as it is defined in the sidebar - const currentRoute = - baseRoute.routes.find((route) => { - return matchPath(location.pathname, route); - }) || {}; - const {permalinkToSidebar, docsSidebars, version} = docsMetadata; - const sidebar = permalinkToSidebar[currentRoute.path]; +function DocPageContent({currentDocRoute, docsMetadata, children}) { const { siteConfig: {themeConfig = {}} = {}, isClient, } = useDocusaurusContext(); - - const {sidebarCollapsible = true} = themeConfig; - - if (Object.keys(currentRoute).length === 0) { - return ; - } - + const {permalinkToSidebar, docsSidebars, version} = docsMetadata; + const sidebarName = permalinkToSidebar[currentDocRoute.path]; + const sidebar = docsSidebars[sidebarName]; return (
{sidebar && (
)} -
- - {renderRoutes(baseRoute.routes)} - -
+
{children}
); } +function DocPage(props) { + const { + route: {routes: subroutes}, + docsMetadata, + location, + } = props; + const currentDocRoute = subroutes.find((subroute) => + matchPath(location.pathname, subroute), + ); + if (!currentDocRoute) { + return ; + } + return ( + + + {renderRoutes(subroutes)} + + + ); +} + export default DocPage; diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebar/index.js b/packages/docusaurus-theme-classic/src/theme/DocSidebar/index.js index 38504c8ab3..5ed1d576c8 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocSidebar/index.js +++ b/packages/docusaurus-theme-classic/src/theme/DocSidebar/index.js @@ -163,7 +163,7 @@ function DocSidebarItem(props) { } } -function DocSidebar(props) { +function DocSidebar({path, sidebar, sidebarCollapsible = true}) { const [showResponsiveSidebar, setShowResponsiveSidebar] = useState(false); const { siteConfig: { @@ -175,13 +175,6 @@ function DocSidebar(props) { const {isAnnouncementBarClosed} = useUserPreferencesContext(); const {scrollY} = useScrollPosition(); - const { - docsSidebars, - path, - sidebar: currentSidebar, - sidebarCollapsible, - } = props; - useLockBodyScroll(showResponsiveSidebar); const windowSize = useWindowSize(); @@ -191,18 +184,6 @@ function DocSidebar(props) { } }, [windowSize]); - if (!currentSidebar) { - return null; - } - - const sidebarData = docsSidebars[currentSidebar]; - - if (!sidebarData) { - throw new Error( - `Cannot find the sidebar "${currentSidebar}" in the sidebar config!`, - ); - } - return (
    - {sidebarData.map((item) => ( + {sidebar.map((item) => (