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