Skip to content

Commit e09eed0

Browse files
Restore build configuration schema
1 parent 3a432bb commit e09eed0

3 files changed

Lines changed: 31 additions & 4 deletions

File tree

apps/docs/markdown-pages/docs/manual/build-configuration-schema.mdx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,4 @@ section: "Build System"
77
order: 3
88
---
99

10-
<Suspense>
11-
<Docson tag="master" />
12-
</Suspense>
10+
<Docson tag="master" />
Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,25 @@
1-
let make = React.lazy_(() => import(Docson.make))
1+
module Internal = {
2+
let make = React.lazy_(() => import(Docson.make))
3+
}
4+
5+
let fallback = <div id="docson-root" />
6+
7+
@react.component
8+
let make = (~tag) => {
9+
let (isMounted, setMounted) = React.useState(_ => false)
10+
11+
React.useEffect(() => {
12+
setMounted(_ => true)
13+
None
14+
}, [])
15+
16+
// Docson mutates the DOM and depends on browser globals, so keep the first
17+
// client render identical to the prerendered HTML and load it after hydration.
18+
if isMounted {
19+
<React.Suspense fallback>
20+
<Internal tag />
21+
</React.Suspense>
22+
} else {
23+
fallback
24+
}
25+
}

apps/docs/vite.config.mjs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ const excludedFiles = ["lib/**", "**/*.res", "**/*.resi"];
1010

1111
export default defineConfig({
1212
envDir: "../..",
13+
// Some older browser-targeted dependencies, notably docson, still reference
14+
// Node's `global` identifier. Rewrite it to the standards-based browser global.
15+
define: {
16+
global: "globalThis",
17+
},
1318
plugins: [
1419
tailwindcss(),
1520
reactRouter(),

0 commit comments

Comments
 (0)