@@ -14,14 +14,14 @@ import { fontUrlByFileBasename } from "./next-appdir/fontUrlByFileBasename";
1414import AppleTouchIcon from "./dsfr/favicon/apple-touch-icon.png" ;
1515import FaviconSvg from "./dsfr/favicon/favicon.svg" ;
1616import FaviconIco from "./dsfr/favicon/favicon.ico" ;
17- import DefaultDocument from "next/document" ;
1817import { getAssetUrl } from "./tools/getAssetUrl" ;
1918import { getColors } from "./fr/colors" ;
2019import { start } from "./start" ;
2120import type { RegisterLink , RegisteredLinkProps } from "./link" ;
2221import { setLink } from "./link" ;
2322import { setUseLang } from "./i18n" ;
2423import Script from "next/script" ;
24+ import { assert } from "tsafe/assert" ;
2525import "./dsfr/dsfr.css" ;
2626import "./dsfr/utility/icons/icons.css" ;
2727
@@ -233,9 +233,14 @@ export function createNextDsfrIntegrationApi(
233233 }
234234
235235 function augmentDocumentForDsfr ( Document : NextComponentType < any , any , any > ) : void {
236- const super_getInitialProps =
237- Document . getInitialProps ?. bind ( Document ) ??
238- DefaultDocument . getInitialProps . bind ( DefaultDocument ) ;
236+ let super_getInitialProps = Document . getInitialProps ?. bind ( Document ) ;
237+
238+ if ( super_getInitialProps === undefined ) {
239+ import ( "next/document" ) . then (
240+ ( { default : DefaultDocument } ) =>
241+ ( super_getInitialProps = DefaultDocument . getInitialProps . bind ( DefaultDocument ) )
242+ ) ;
243+ }
239244
240245 ( Document as any ) . getInitialProps = async ( documentContext : DocumentContext ) => {
241246 const { isDark } = ( ( ) => {
@@ -275,6 +280,11 @@ export function createNextDsfrIntegrationApi(
275280 } ) ;
276281 }
277282
283+ assert (
284+ super_getInitialProps !== undefined ,
285+ "Default document not yet loaded. Please submit an issue to the tss-react repo"
286+ ) ;
287+
278288 const initialProps = await super_getInitialProps ( documentContext ) ;
279289
280290 return { ...initialProps , [ isDarkPropKey ] : isDark } ;
0 commit comments