77 lines
1.9 KiB
TypeScript
77 lines
1.9 KiB
TypeScript
import query from './query.graphql'
|
|
import ProductSubnav from 'components/subnav'
|
|
import Footer from 'components/footer'
|
|
import { open } from '@hashicorp/react-consent-manager'
|
|
|
|
export default function StandardLayout(props: Props): React.ReactElement {
|
|
const { useCaseNavItems } = props.data
|
|
|
|
return (
|
|
<>
|
|
<ProductSubnav
|
|
menuItems={[
|
|
{ text: 'Overview', url: '/' },
|
|
{
|
|
text: 'Use Cases',
|
|
submenu: [
|
|
{ text: 'Consul on Kubernetes', url: '/consul-on-kubernetes' },
|
|
...useCaseNavItems.map((item) => {
|
|
return {
|
|
text: item.text,
|
|
url: `/use-cases/${item.url}`,
|
|
}
|
|
}),
|
|
].sort((a, b) => a.text.localeCompare(b.text)),
|
|
},
|
|
{
|
|
text: 'Enterprise',
|
|
url:
|
|
'https://www.hashicorp.com/products/consul/?utm_source=oss&utm_medium=header-nav&utm_campaign=consul',
|
|
type: 'outbound',
|
|
},
|
|
'divider',
|
|
{
|
|
text: 'Tutorials',
|
|
url: 'https://learn.hashicorp.com/consul',
|
|
type: 'outbound',
|
|
},
|
|
{
|
|
text: 'Docs',
|
|
url: '/docs',
|
|
type: 'inbound',
|
|
},
|
|
{
|
|
text: 'API',
|
|
url: '/api-docs',
|
|
type: 'inbound',
|
|
},
|
|
{
|
|
text: 'CLI',
|
|
url: '/commands',
|
|
type: 'inbound,',
|
|
},
|
|
{
|
|
text: 'Community',
|
|
url: '/community',
|
|
type: 'inbound',
|
|
},
|
|
]}
|
|
/>
|
|
{props.children}
|
|
<Footer openConsentManager={open} />
|
|
</>
|
|
)
|
|
}
|
|
|
|
StandardLayout.rivetParams = {
|
|
query,
|
|
dependencies: [],
|
|
}
|
|
|
|
interface Props {
|
|
children: React.ReactChildren
|
|
data: {
|
|
useCaseNavItems: Array<{ url: string; text: string }>
|
|
}
|
|
}
|