Skip to content

Commit 9466c53

Browse files
committed
Update Next.js appdir setup to reduce bundle size
1 parent b4e5af7 commit 9466c53

File tree

8 files changed

+38
-24
lines changed

8 files changed

+38
-24
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
"remixicon": "^2.5.0",
109109
"storybook-dark-mode": "^1.1.2",
110110
"ts-node": "^10.9.1",
111-
"tss-react": "^4.4.4",
111+
"tss-react": "^4.7.0",
112112
"type-route": "^1.0.1",
113113
"typescript": "^4.9.1-beta",
114114
"vitest": "^0.24.3"

src/next-pagesdir.tsx

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ import Head from "next/head";
33
import type { NextComponentType } from "next";
44
import DefaultApp from "next/app";
55
import type { AppProps, AppContext } from "next/app";
6-
import type { DocumentProps, DocumentContext } from "next/document";
6+
import type DefaultDocument from "next/document";
7+
import { DocumentProps, DocumentContext } from "next/document";
78
import { rootColorSchemeStyleTagId, data_fr_scheme, data_fr_theme } from "./useIsDark/constants";
89
import { getScriptToRunAsap } from "./useIsDark/scriptToRunAsap";
910
import { SsrIsDarkProvider } from "./useIsDark/server";
@@ -14,7 +15,6 @@ import { fontUrlByFileBasename } from "./next-appdir/fontUrlByFileBasename";
1415
import AppleTouchIcon from "./dsfr/favicon/apple-touch-icon.png";
1516
import FaviconSvg from "./dsfr/favicon/favicon.svg";
1617
import FaviconIco from "./dsfr/favicon/favicon.ico";
17-
import DefaultDocument from "next/document";
1818
import { getAssetUrl } from "./tools/getAssetUrl";
1919
import { getColors } from "./fr/colors";
2020
import { start } from "./start";
@@ -70,7 +70,10 @@ export type NextDsfrIntegrationApi = {
7070
App: AppComponent
7171
) => AppComponent;
7272
dsfrDocumentApi: {
73-
augmentDocumentForDsfr: (Document: NextComponentType<any, any, any>) => void;
73+
augmentDocumentForDsfr: (params: {
74+
DefaultDocument: typeof DefaultDocument;
75+
Document?: NextComponentType<any, any, any>;
76+
}) => void;
7477
getColorSchemeHtmlAttributes: (
7578
props: DocumentProps
7679
) =>
@@ -232,7 +235,12 @@ export function createNextDsfrIntegrationApi(
232235
return AppWithDsfr as any;
233236
}
234237

235-
function augmentDocumentForDsfr(Document: NextComponentType<any, any, any>): void {
238+
function augmentDocumentForDsfr(params: {
239+
DefaultDocument: typeof DefaultDocument;
240+
Document?: NextComponentType<any, any, any>;
241+
}): void {
242+
const { DefaultDocument, Document = DefaultDocument } = params;
243+
236244
const super_getInitialProps =
237245
Document.getInitialProps?.bind(Document) ??
238246
DefaultDocument.getInitialProps.bind(DefaultDocument);

test/integration/next-appdir/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"next": "13.0.7",
2121
"react": "18.2.0",
2222
"react-dom": "18.2.0",
23-
"tss-react": "^4.5.0",
23+
"tss-react": "^4.7.0",
2424
"tsafe": "^1.4.1",
2525
"@mui/x-date-pickers": "^5.0.12",
2626
"dayjs": "^1.11.7",

test/integration/next-appdir/yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393
to-fast-properties "^2.0.0"
9494

9595
"@codegouvfr/react-dsfr@file:../../../dist":
96-
version "0.16.0"
96+
version "0.35.1"
9797
dependencies:
9898
tsafe "^1.4.0"
9999

@@ -2430,10 +2430,10 @@ tslib@^2.4.0:
24302430
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
24312431
integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
24322432

2433-
tss-react@^4.5.0:
2434-
version "4.5.0"
2435-
resolved "https://registry.yarnpkg.com/tss-react/-/tss-react-4.5.0.tgz#76a798408b298e9108fb37ce51b304dbd62cabff"
2436-
integrity sha512-PVdh5vR9/syxLi7xshz8+WCG46dp9sA8VD0NsMAvVAriKKsogqImkSe7IBwGO1UgjlDPM7zN1B+7xBk0fR0gOw==
2433+
tss-react@^4.7.0:
2434+
version "4.7.0"
2435+
resolved "https://registry.yarnpkg.com/tss-react/-/tss-react-4.7.0.tgz#fdc7925c4b8b2842d37f8e54ae20aa5980fd6e44"
2436+
integrity sha512-8U1Jgthn7FFvVgpyaLu4rIZYxcmdlohX3oGGxHpgQbRxt8gR1B+LoKVhFi+fL6fvM0daIB7ZMrwEoPuvzUmg5g==
24372437
dependencies:
24382438
"@emotion/cache" "*"
24392439
"@emotion/serialize" "*"

test/integration/next-pagesdir/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"next-transpile-modules": "^10.0.0",
1919
"@emotion/react": "^11.10.5",
2020
"@emotion/server": "^11.10.0",
21-
"tss-react": "^4.4.4",
21+
"tss-react": "^4.7.0",
2222
"@mui/material": "^5.11.0",
2323
"@mui/icons-material": "^5.11.0",
2424
"@emotion/styled": "^11.10.5",

test/integration/next-pagesdir/pages/_document.tsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Html, Head, Main, NextScript } from "next/document";
1+
import DefaultDocument, { Html, Head, Main, NextScript } from "next/document";
22
import type { DocumentProps } from "next/document";
33
import { dsfrDocumentApi, augmentDocumentWithEmotionCache } from "./_app";
44

@@ -16,6 +16,12 @@ export default function Document(props: DocumentProps) {
1616
);
1717
}
1818

19-
augmentDocumentForDsfr(Document);
19+
augmentDocumentForDsfr({
20+
DefaultDocument,
21+
Document
22+
});
2023

21-
augmentDocumentWithEmotionCache(Document);
24+
augmentDocumentWithEmotionCache({
25+
DefaultDocument,
26+
Document
27+
});

test/integration/next-pagesdir/yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
to-fast-properties "^2.0.0"
8080

8181
"@codegouvfr/react-dsfr@file:../../../dist":
82-
version "0.5.3-rc.0"
82+
version "0.35.1"
8383
dependencies:
8484
tsafe "^1.4.0"
8585

@@ -2406,10 +2406,10 @@ tslib@^2.4.0:
24062406
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
24072407
integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
24082408

2409-
tss-react@^4.4.4:
2410-
version "4.4.5"
2411-
resolved "https://registry.yarnpkg.com/tss-react/-/tss-react-4.4.5.tgz#0d1ba3892cc79eb7f9f73e016041c329fe5f588f"
2412-
integrity sha512-yKKwAuaTKyJf0R1Kn7o0T3RVw/Q3lufQQy2Cic2ZFiD1wnamjYCfPgDjQ44Wyk0lyVJGnTXHbUOwh7dhP5lTsA==
2409+
tss-react@^4.7.0:
2410+
version "4.7.0"
2411+
resolved "https://registry.yarnpkg.com/tss-react/-/tss-react-4.7.0.tgz#fdc7925c4b8b2842d37f8e54ae20aa5980fd6e44"
2412+
integrity sha512-8U1Jgthn7FFvVgpyaLu4rIZYxcmdlohX3oGGxHpgQbRxt8gR1B+LoKVhFi+fL6fvM0daIB7ZMrwEoPuvzUmg5g==
24132413
dependencies:
24142414
"@emotion/cache" "*"
24152415
"@emotion/serialize" "*"

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10983,10 +10983,10 @@ tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0:
1098310983
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
1098410984
integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
1098510985

10986-
tss-react@^4.4.4:
10987-
version "4.4.5"
10988-
resolved "https://registry.yarnpkg.com/tss-react/-/tss-react-4.4.5.tgz#0d1ba3892cc79eb7f9f73e016041c329fe5f588f"
10989-
integrity sha512-yKKwAuaTKyJf0R1Kn7o0T3RVw/Q3lufQQy2Cic2ZFiD1wnamjYCfPgDjQ44Wyk0lyVJGnTXHbUOwh7dhP5lTsA==
10986+
tss-react@^4.7.0:
10987+
version "4.7.0"
10988+
resolved "https://registry.yarnpkg.com/tss-react/-/tss-react-4.7.0.tgz#fdc7925c4b8b2842d37f8e54ae20aa5980fd6e44"
10989+
integrity sha512-8U1Jgthn7FFvVgpyaLu4rIZYxcmdlohX3oGGxHpgQbRxt8gR1B+LoKVhFi+fL6fvM0daIB7ZMrwEoPuvzUmg5g==
1099010990
dependencies:
1099110991
"@emotion/cache" "*"
1099210992
"@emotion/serialize" "*"

0 commit comments

Comments
 (0)