Skip to content

Commit 37fd97f

Browse files
author
Adrian Bece
committed
Improve SSR when partial options are provided
1 parent 1dfcae0 commit 37fd97f

File tree

2 files changed

+31
-22
lines changed

2 files changed

+31
-22
lines changed

gatsby-ssr.js

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,14 @@ export const onRenderBody = (
1313
const preload = getFontFiles(allFonts)
1414
const fontNames = getFontNames(allFonts)
1515

16-
const hasPreconnect = Boolean(preconnect.length)
17-
const hasPreload = Boolean(preload.length)
18-
19-
if (!preconnect || !preload || !hasPreconnect || !hasPreload) return
20-
2116
const preloadConfig = getFontConfig(preconnect, preload)
2217

23-
if (enableListener) {
18+
if (enableListener && Boolean(allFonts.length)) {
2419
const testFontConfig = getTestFonts(fontNames)
2520
setPostBodyComponents(testFontConfig)
2621
}
2722

28-
setHeadComponents(preloadConfig)
23+
if(preloadConfig && Boolean(preloadConfig.length)) {
24+
setHeadComponents(preloadConfig)
25+
}
2926
}

utils/getFontConfig.tsx

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,34 @@ export const getFontConfig = (
66
) => {
77
const headComponents = []
88

9-
preconnectConfig.forEach(href => {
10-
headComponents.push(
11-
<link
12-
key={`preconnect-${href}`}
13-
rel="preconnect"
14-
href={href}
15-
crossOrigin="true"
16-
/>
17-
)
18-
})
9+
if (
10+
preconnectConfig &&
11+
Array.isArray(preconnectConfig) &&
12+
Boolean(preconnectConfig.length)
13+
) {
14+
preconnectConfig.forEach(href => {
15+
headComponents.push(
16+
<link
17+
key={`preconnect-${href}`}
18+
rel="preconnect"
19+
href={href}
20+
crossOrigin="true"
21+
/>
22+
)
23+
})
24+
}
1925

20-
preloadConfig.forEach(href => {
21-
headComponents.push(
22-
<link key={`preload-${href}`} rel="preload" as="style" href={href} />
23-
)
24-
})
26+
if (
27+
preloadConfig &&
28+
Array.isArray(preloadConfig) &&
29+
Boolean(preloadConfig.length)
30+
) {
31+
preloadConfig.forEach(href => {
32+
headComponents.push(
33+
<link key={`preload-${href}`} rel="preload" as="style" href={href} />
34+
)
35+
})
36+
}
2537

2638
return headComponents
2739
}

0 commit comments

Comments
 (0)