import Document, { Html, Head, Main, NextScript, DocumentContext } from 'next/document' import { ServerStyleSheet } from 'styled-components' export default class MyDocument extends Document { static async getInitialProps(ctx: DocumentContext) { const sheet = new ServerStyleSheet() const originalRenderPage = ctx.renderPage try { ctx.renderPage = () => originalRenderPage({ enhanceApp: (App) => (props) => sheet.collectStyles(<App {...props} />), }) const initialProps = await Document.getInitialProps(ctx) return { ...initialProps, styles: ( <> {initialProps.styles} <link rel="stylesheet" href="/global.css" /> <link rel="stylesheet" title="Dark" href="/theme/dark.css" /> <link rel="alternate stylesheet" title="Light" href="/theme/light.css" /> {sheet.getStyleElement()} </> ), } } finally { sheet.seal() } } render() { return ( <Html lang="en-PH"> <Head /> <body> <Main /> <NextScript /> </body> </Html> ) } }