consul/website/layouts/docs.jsx

51 lines
1.5 KiB
React
Raw Normal View History

2020-04-06 20:27:35 +00:00
import Head from 'next/head'
import Link from 'next/link'
import { createMdxProvider } from '@hashicorp/nextjs-scripts/lib/providers/docs'
import DocsPage from '@hashicorp/react-docs-page'
import { SearchProvider } from '@hashicorp/react-search'
import SearchBar from '../components/search-bar'
import { frontMatter as data } from '../pages/docs/**/*.mdx'
import order from '../data/docs-navigation.js'
2020-04-06 20:27:35 +00:00
2020-07-02 18:08:30 +00:00
const MDXProvider = createMdxProvider({ product: 'consul' })
2020-04-07 23:56:08 +00:00
2020-04-06 20:27:35 +00:00
function DocsLayoutWrapper(pageMeta) {
function DocsLayout(props) {
const { children, ...propsWithoutChildren } = props
2020-04-06 20:27:35 +00:00
return (
<MDXProvider>
2020-04-07 23:56:08 +00:00
<DocsPage
{...propsWithoutChildren}
2020-04-07 23:56:08 +00:00
product="consul"
head={{
is: Head,
title: `${pageMeta.page_title} | Consul by HashiCorp`,
description: pageMeta.description,
siteName: 'Consul by HashiCorp',
}}
sidenav={{
Link,
category: 'docs',
currentPage: props.path,
data,
disableFilter: true,
2020-04-07 23:56:08 +00:00
order,
}}
resourceURL={`https://github.com/hashicorp/consul/blob/master/website/pages/${pageMeta.__resourcePath}`}
>
<SearchProvider>
<SearchBar />
{children}
</SearchProvider>
</DocsPage>
2020-04-07 23:56:08 +00:00
</MDXProvider>
2020-04-06 20:27:35 +00:00
)
}
DocsLayout.getInitialProps = ({ asPath }) => ({ path: asPath })
return DocsLayout
}
export default DocsLayoutWrapper