0eb6334b2d
* init homepage * adds tutorials * update subnav * adds intro background * add offerings * adds in practice cta * include radial gradient * cleanup gradient * Fix learn more button display * include use case pages * connect subnav menu items * extract in practice section for reuse * use Products type * fix type error * add neutral option * rework cta logic * Fix links map * fix use case path * updates accent method * fix button prop usage * refactor customer case study * refactor case studies component * cleanup margin * refactor data props * fix offering cta * spacing updates and introduce intro component * adds intro interface * removes footer border * fix intro description color * add revalidate code to homepage * cleanup unused imports * bump subnav * makes stats optional * adjust border radius based on customer story * redirect /home to homepage * fix: turtorials link * fix: logo alignment * fix: section background color * feat: home reorder and tuts and docs links * fix: flush padding * formatting * feat: sort use cases in nav * fix: card overflow * fix: adjust overflow method * fix: padding on desktop * fix: card container overflow padding on mobile * fix: intro cta conditional * fix: simplify conditional * fix: customer logo sizing * cleanup old data * accept isInternalLink as arg * remove chunk * fix: isInternalLink usage * fix: isInternalLink prop usage * fix: add lang to document * init homepage * adds tutorials * add offerings * cleanup unused imports * bump subnav * fix: flush padding * formatting * fix: intro cta conditional * fix: simplify conditional * cleanup old data * add consul on kubernetes to menu items * add use case redirect * Add use case redirect
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 }>
|
|
}
|
|
}
|