computer-scienceangular-roadmapbackend-roadmapblockchain-roadmapdba-roadmapdeveloper-roadmapdevops-roadmapfrontend-roadmapgo-roadmaphactoberfestjava-roadmapjavascript-roadmapnodejs-roadmappython-roadmapqa-roadmapreact-roadmaproadmapstudy-planvue-roadmapweb3-roadmap
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
722 B
29 lines
722 B
import Document from 'next/document' |
|
import { ServerStyleSheet } from 'styled-components' |
|
|
|
export default class MyDocument extends Document { |
|
static async getInitialProps(ctx) { |
|
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 } |
|
{ sheet.getStyleElement() } |
|
</> |
|
), |
|
} |
|
} finally { |
|
sheet.seal() |
|
} |
|
} |
|
} |