import './style.css' import '@hashicorp/platform-util/nprogress/style.css' import Router from 'next/router' import Head from 'next/head' import rivetQuery from '@hashicorp/nextjs-scripts/dato/client' import { ErrorBoundary } from '@hashicorp/platform-runtime-error-monitoring' import createConsentManager from '@hashicorp/react-consent-manager/loader' import localConsentManagerServices from 'lib/consent-manager-services' import NProgress from '@hashicorp/platform-util/nprogress' import useFathomAnalytics from '@hashicorp/platform-analytics' import useAnchorLinkAnalytics from '@hashicorp/platform-util/anchor-link-analytics' import HashiHead from '@hashicorp/react-head' import Error from './_error' import AlertBanner from '@hashicorp/react-alert-banner' import alertBannerData, { ALERT_BANNER_ACTIVE } from '../data/alert-banner' import StandardLayout from 'layouts/standard' NProgress({ Router }) const { ConsentManager } = createConsentManager({ preset: 'oss', otherServices: [...localConsentManagerServices], }) export default function App({ Component, pageProps, layoutData }) { useFathomAnalytics() useAnchorLinkAnalytics() const Layout = Component.layout ?? StandardLayout return ( {ALERT_BANNER_ACTIVE && ( )} ) } App.getInitialProps = async ({ Component, ctx }) => { const layoutQuery = Component.layout ? Component.layout?.rivetParams ?? null : StandardLayout.rivetParams const layoutData = layoutQuery ? await rivetQuery(layoutQuery) : null let pageProps = {} if (Component.getInitialProps) { pageProps = await Component.getInitialProps(ctx) } return { pageProps, layoutData } }