import type { DocumentContext } from 'next/document'; import Document, { Html, Head, Main, NextScript } from 'next/document'; import React from 'react'; import logRequestFromBot from 'nextjs/utils/logRequestFromBot'; import * as serverTiming from 'nextjs/utils/serverTiming'; import config from 'configs/app'; import * as svgSprite from 'ui/shared/IconSvg'; const marketplaceFeature = config.features.marketplace; class MyDocument extends Document { static async getInitialProps(ctx: DocumentContext) { const originalRenderPage = ctx.renderPage; ctx.renderPage = async() => { const start = Date.now(); const result = await originalRenderPage(); const end = Date.now(); serverTiming.appendValue(ctx.res, 'renderPage', end - start); return result; }; await logRequestFromBot(ctx.req, ctx.res, ctx.pathname); const initialProps = await Document.getInitialProps(ctx); return initialProps; } render() { return (
{ /* FONTS */ } { /* eslint-disable-next-line @next/next/no-sync-scripts */ } { config.features.multichain.isEnabled && ( <> { /* eslint-disable-next-line @next/next/no-sync-scripts */ } > ) } { marketplaceFeature.isEnabled && marketplaceFeature.essentialDapps && ( <> { /* eslint-disable-next-line @next/next/no-sync-scripts */ } > ) } { /* FAVICON */ }