import PageContainer from 'components/page-container' import Pagination from 'components/pagination' import Sidebar from 'components/sidebar/sidebar' import componentsSidebar from 'configs/components.sidebar.json' import gettingStartedSidebar from 'configs/getting-started.sidebar.json' import hooksSidebar from 'configs/hooks.sidebar.json' import styledSystemSidebar from 'configs/styled-system.sidebar.json' import tutorialSidebar from 'configs/tutorial.sidebar.json' import figmaSidebar from 'configs/figma.sidebar.json' import communitySidebar from 'configs/community.sidebar.json' import { ReactNode } from 'react' import { findRouteByPath, removeFromLast } from 'utils/find-route-by-path' import { getRouteContext, RouteItem } from 'utils/get-route-context' import { Frontmatter } from 'src/types/frontmatter' export function getRoutes(slug: string): RouteItem[] { // for home page, use docs sidebar if (slug === '/') { return gettingStartedSidebar.routes as RouteItem[] } const configMap = { '/getting-started': gettingStartedSidebar, '/docs/styled-system': styledSystemSidebar, '/docs/hooks': hooksSidebar, '/docs/components': componentsSidebar, '/tutorial': tutorialSidebar, '/community': communitySidebar, '/figma': figmaSidebar, } const [, sidebar] = Object.entries(configMap).find(([path]) => slug.startsWith(path)) ?? [] const routes = sidebar?.routes ?? [] return routes as RouteItem[] } interface MDXLayoutProps { frontmatter: Frontmatter children: ReactNode hideToc?: boolean maxWidth?: string } export default function MDXLayout(props: MDXLayoutProps) { const { frontmatter, children, hideToc, maxWidth } = props const routes = getRoutes(frontmatter.slug) const route = findRouteByPath(removeFromLast(frontmatter.slug, '#'), routes) const routeContext = getRouteContext(route, routes) return ( } pagination={ } > {children} ) }