diff --git a/beta/src/components/Layout/Page.tsx b/beta/src/components/Layout/Page.tsx index 2f94db813..ff3cdf770 100644 --- a/beta/src/components/Layout/Page.tsx +++ b/beta/src/components/Layout/Page.tsx @@ -26,7 +26,7 @@ interface PageProps { toc: Array; routeTree: RouteItem; meta: {title?: string; description?: string}; - section: 'learn' | 'reference' | 'community' | 'blog' | 'home'; + section: 'learn' | 'reference' | 'community' | 'blog' | 'home' | 'unknown'; } export function Page({children, toc, routeTree, meta, section}: PageProps) { @@ -66,6 +66,19 @@ export function Page({children, toc, routeTree, meta, section}: PageProps) { ); } + let hasColumns = true; + if (section === 'home') { + hasColumns = false; + } + let showSidebar = true; + let showToc = true; + if (section === 'home' || section === 'blog') { + showSidebar = false; + } + if (cleanedPath === '/blog') { + showToc = false; + } + return ( <> @@ -77,13 +90,19 @@ export function Page({children, toc, routeTree, meta, section}: PageProps) { />
-
+
- + {showSidebar && ( + + )}
{/* No fallback UI so need to be careful not to suspend directly inside. */} @@ -96,7 +115,7 @@ export function Page({children, toc, routeTree, meta, section}: PageProps) {
- {toc.length > 0 && } + {showToc && toc.length > 0 && }
diff --git a/beta/src/components/Layout/TopNav/TopNav.tsx b/beta/src/components/Layout/TopNav/TopNav.tsx index 1064796fb..bcf647c39 100644 --- a/beta/src/components/Layout/TopNav/TopNav.tsx +++ b/beta/src/components/Layout/TopNav/TopNav.tsx @@ -125,17 +125,17 @@ function Link({href, children, ...props}: JSX.IntrinsicElements['a']) { ); } -function NavItem({url, section, title}: any) { +function NavItem({url, isActive, children}: any) { return (
- {title} + {children}
); @@ -148,7 +148,7 @@ export default function TopNav({ }: { routeTree: RouteItem; breadcrumbs: RouteItem[]; - section: 'learn' | 'reference' | 'community' | 'blog' | 'home'; + section: 'learn' | 'reference' | 'community' | 'blog' | 'home' | 'unknown'; }) { const [isOpen, setIsOpen] = useState(false); const [showFeedback, setShowFeedback] = useState(false); @@ -264,26 +264,34 @@ export default function TopNav({ )}> {isOpen ? : } - - - - React - - +
- + + Learn + - - + isActive={section === 'reference'} + url="/reference/react"> + Reference + + + Community + + + Blog +
diff --git a/beta/src/pages/[[...markdownPath]].js b/beta/src/pages/[[...markdownPath]].js index 2af78a68d..d1df93d3c 100644 --- a/beta/src/pages/[[...markdownPath]].js +++ b/beta/src/pages/[[...markdownPath]].js @@ -22,6 +22,7 @@ export default function Layout({content, toc, meta}) { let routeTree; switch (section) { case 'home': + case 'unknown': routeTree = sidebarHome; break; case 'learn': @@ -46,7 +47,10 @@ export default function Layout({content, toc, meta}) { function useActiveSection() { const {asPath} = useRouter(); - if (asPath.startsWith('/reference')) { + const cleanedPath = asPath.split(/[\?\#]/)[0]; + if (cleanedPath === '/') { + return 'home'; + } else if (cleanedPath.startsWith('/reference')) { return 'reference'; } else if (asPath.startsWith('/learn')) { return 'learn'; @@ -55,7 +59,7 @@ function useActiveSection() { } else if (asPath.startsWith('/blog')) { return 'blog'; } else { - return 'home'; + return 'unknown'; } }