import Document, { Html, Head, Main, NextScript } from "next/document"; import SkipLink from "../components/skiplink"; import { Tracking, TrackingNoScript } from "../components/tracking"; import basicAuthMiddleware from "nextjs-basic-auth-middleware"; class MyDocument extends Document { static async getInitialProps(ctx) { const initialProps = await Document.getInitialProps(ctx); let useGATracking = false; //remove this block when not need after softlaunch let hasBasicAuth = typeof process.env.BASIC_AUTH_CREDENTIALS != "undefined"; console.log(hasBasicAuth); if (ctx.req && ctx.res) { hasBasicAuth && (await basicAuthMiddleware(ctx.req, ctx.res, { users: process.env.BASIC_AUTH_CREDENTIALS, })); } if (ctx.req && ctx.req.headers.cookie) { typeof ctx.req.cookies.CookiePolicy != "undefined" ? JSON.parse(ctx.req.cookies.CookiePolicy).usage == "accepted" ? (useGATracking = true) : (useGATracking = false) : (useGATracking = true); } else { useGATracking = false; } return { ...initialProps, useGATracking }; } render() { const googleTagManagerID = process.env.GOOGLE_TAG_MANAGER || null; const { useGATracking } = this.props; return ( {useGATracking && ( )} {useGATracking && ( )} {!process.browser && ( )}
); } } export default MyDocument;