xref: /expo/docs/pages/_document.tsx (revision f4b1168b)
1import { Global } from '@emotion/react';
2import { BlockingSetInitialColorMode } from '@expo/styleguide';
3import Document, { Html, Head, Main, NextScript, DocumentContext } from 'next/document';
4
5import { globalDiff } from '~/global-styles/diff';
6import { globalExtras } from '~/global-styles/extras';
7import { globalNProgress } from '~/global-styles/nprogress';
8import { globalPrism } from '~/global-styles/prism';
9import { globalTippy } from '~/global-styles/tippy';
10
11export default class DocsDocument extends Document {
12  static async getInitialProps(ctx: DocumentContext) {
13    const initialProps = await Document.getInitialProps(ctx);
14    return {
15      ...initialProps,
16      styles: <>{initialProps.styles}</>,
17    };
18  }
19
20  render() {
21    return (
22      <Html lang="en">
23        <Head>
24          <Global styles={[globalNProgress, globalPrism, globalTippy, globalDiff, globalExtras]} />
25        </Head>
26        <body>
27          <BlockingSetInitialColorMode />
28          <Main />
29          <NextScript />
30        </body>
31      </Html>
32    );
33  }
34}
35