Skip to content

Commit

Permalink
Fix with-emotion examples (#13005)
Browse files Browse the repository at this point in the history
  • Loading branch information
lboecker authored May 18, 2020
1 parent 97587eb commit 36ddada
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 20 deletions.
26 changes: 16 additions & 10 deletions examples/with-emotion-11/pages/_document.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,27 @@ import Document, { Head, Main, NextScript } from 'next/document'
import { extractCritical } from '@emotion/server'

export default class MyDocument extends Document {
static getInitialProps({ renderPage }) {
const page = renderPage()
const styles = extractCritical(page.html)
return { ...page, ...styles }
static async getInitialProps(ctx) {
const initialProps = await Document.getInitialProps(ctx)
const styles = extractCritical(initialProps.html)
return {
...initialProps,
styles: (
<>
{initialProps.styles}
<style
data-emotion-css={styles.ids.join(' ')}
dangerouslySetInnerHTML={{ __html: styles.css }}
/>
</>
),
}
}

render() {
return (
<html>
<Head>
<style
data-emotion-css={this.props.ids.join(' ')}
dangerouslySetInnerHTML={{ __html: this.props.css }}
/>
</Head>
<Head />
<body>
<Main />
<NextScript />
Expand Down
26 changes: 16 additions & 10 deletions examples/with-emotion/pages/_document.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,27 @@ import Document, { Head, Main, NextScript } from 'next/document'
import { extractCritical } from 'emotion-server'

export default class MyDocument extends Document {
static getInitialProps({ renderPage }) {
const page = renderPage()
const styles = extractCritical(page.html)
return { ...page, ...styles }
static async getInitialProps(ctx) {
const initialProps = await Document.getInitialProps(ctx)
const styles = extractCritical(initialProps.html)
return {
...initialProps,
styles: (
<>
{initialProps.styles}
<style
data-emotion-css={styles.ids.join(' ')}
dangerouslySetInnerHTML={{ __html: styles.css }}
/>
</>
),
}
}

render() {
return (
<html>
<Head>
<style
data-emotion-css={this.props.ids.join(' ')}
dangerouslySetInnerHTML={{ __html: this.props.css }}
/>
</Head>
<Head />
<body>
<Main />
<NextScript />
Expand Down

0 comments on commit 36ddada

Please sign in to comment.