-
Notifications
You must be signed in to change notification settings - Fork 10.3k
/
gatsby-ssr.js
35 lines (33 loc) · 1.1 KB
/
gatsby-ssr.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import React from "react"
import { TypographyStyle, GoogleFont } from "react-typography"
import typography from "./.cache/typography"
exports.onRenderBody = ({ setHeadComponents }, pluginOptions) => {
if (process.env.BUILD_STAGE === `build-html`) {
const googleFont = [].concat(
pluginOptions.omitGoogleFont ? (
[]
) : (
<GoogleFont key={`GoogleFont`} typography={typography} />
)
)
setHeadComponents([
<TypographyStyle key={`TypographyStyle`} typography={typography} />,
...googleFont,
])
}
}
// Move Typography.js styles to the top of the head section so they're loaded first
// and don't accidentally overwrite other styles. Typography.js is meant to
// be a configurable CSS reset so should always load first.
exports.onPreRenderHTML = ({ getHeadComponents, replaceHeadComponents }) => {
const headComponents = getHeadComponents()
headComponents.sort((x, y) => {
if (x && x.key === `TypographyStyle`) {
return -1
} else if (y && y.key === `TypographyStyle`) {
return 1
}
return 0
})
replaceHeadComponents(headComponents)
}