open-nomad/website/pages/_app.js

49 lines
1.8 KiB
JavaScript
Raw Normal View History

2020-02-06 23:45:31 +00:00
import './style.css'
import '@hashicorp/nextjs-scripts/lib/nprogress/style.css'
2020-02-06 23:45:31 +00:00
import Router from 'next/router'
import Head from 'next/head'
import NProgress from '@hashicorp/nextjs-scripts/lib/nprogress'
import { ErrorBoundary } from '@hashicorp/nextjs-scripts/lib/bugsnag'
import createConsentManager from '@hashicorp/nextjs-scripts/lib/consent-manager'
import useAnchorLinkAnalytics from '@hashicorp/nextjs-scripts/lib/anchor-link-analytics'
import HashiStackMenu from '@hashicorp/react-hashi-stack-menu'
2020-03-26 00:11:19 +00:00
import AlertBanner from '@hashicorp/react-alert-banner'
2020-03-16 17:10:31 +00:00
import HashiHead from '@hashicorp/react-head'
2020-06-01 21:48:25 +00:00
import Footer from 'components/footer'
import ProductSubnav from 'components/subnav'
import Error from './_error'
2020-06-01 21:48:25 +00:00
import alertBannerData, { ALERT_BANNER_ACTIVE } from 'data/alert-banner'
2020-02-06 23:45:31 +00:00
NProgress({ Router })
const { ConsentManager, openConsentManager } = createConsentManager({
preset: 'oss',
2020-02-06 23:45:31 +00:00
})
2020-12-07 22:04:11 +00:00
export default function App({ Component, pageProps }) {
useAnchorLinkAnalytics()
2020-02-06 23:45:31 +00:00
return (
<ErrorBoundary FallbackComponent={Error}>
<HashiHead
is={Head}
title="Nomad by HashiCorp"
siteName="Nomad by HashiCorp"
description="Nomad is a highly available, distributed, data-center aware cluster and application scheduler designed to support the modern datacenter with support for long-running services, batch jobs, and much more."
image="https://www.nomadproject.io/img/og-image.png"
icon={[{ href: '/favicon.ico' }]}
/>
{ALERT_BANNER_ACTIVE && (
<AlertBanner {...alertBannerData} theme="nomad" />
)}
<HashiStackMenu />
<ProductSubnav />
<div className={`content${ALERT_BANNER_ACTIVE ? ' banner' : ''}`}>
<Component {...pageProps} />
</div>
<Footer openConsentManager={openConsentManager} />
<ConsentManager />
</ErrorBoundary>
)
}