Skip to content

Commit a670fed

Browse files
committed
Use server.browser for now
No plans to support React 19 in Pages router.
1 parent 1f07d9f commit a670fed

File tree

14 files changed

+298
-229
lines changed

14 files changed

+298
-229
lines changed

examples/reproduction-template/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
},
88
"dependencies": {
99
"next": "canary",
10-
"react": "19.0.0-rc-7771d3a7-20240827",
11-
"react-dom": "19.0.0-rc-7771d3a7-20240827"
10+
"react": "^18.2.0",
11+
"react-dom": "^18.2.0"
1212
},
1313
"devDependencies": {
1414
"@types/node": "20.12.12",

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -206,10 +206,10 @@
206206
"pretty-bytes": "5.3.0",
207207
"pretty-ms": "7.0.0",
208208
"random-seed": "0.3.0",
209-
"react": "19.0.0-rc-7771d3a7-20240827",
209+
"react": "18.3.1",
210210
"react-17": "npm:[email protected]",
211211
"react-builtin": "npm:[email protected]",
212-
"react-dom": "19.0.0-rc-7771d3a7-20240827",
212+
"react-dom": "18.3.1",
213213
"react-dom-17": "npm:[email protected]",
214214
"react-dom-builtin": "npm:[email protected]",
215215
"react-dom-experimental-builtin": "npm:[email protected]",
@@ -269,10 +269,10 @@
269269
"@babel/traverse": "7.22.5",
270270
"@types/react": "npm:[email protected]",
271271
"@types/react-dom": "npm:[email protected]",
272-
"react": "19.0.0-rc-7771d3a7-20240827",
273-
"react-dom": "19.0.0-rc-7771d3a7-20240827",
274-
"react-is": "19.0.0-rc-7771d3a7-20240827",
275-
"scheduler": "0.25.0-rc-7771d3a7-20240827"
272+
"react": "18.3.1",
273+
"react-dom": "18.3.1",
274+
"react-is": "18.3.1",
275+
"scheduler": "0.23.2"
276276
},
277277
"patchedDependencies": {
278278

packages/create-next-app/templates/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { GetTemplateFileArgs, InstallTemplateArgs } from "./types";
1313

1414
// Do not rename or format. sync-react script relies on this line.
1515
// prettier-ignore
16-
const nextjsReactPeerVersion = "19.0.0-rc-7771d3a7-20240827";
16+
const nextjsReactPeerVersion = "^18.2.0";
1717

1818
/**
1919
* Get the file path for a given file in a template, e.g. "next.config.js".

packages/next/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@
108108
"@opentelemetry/api": "^1.1.0",
109109
"@playwright/test": "^1.41.2",
110110
"babel-plugin-react-compiler": "*",
111-
"react": "^18.2.0 || 19.0.0-rc-7771d3a7-20240827",
112-
"react-dom": "^18.2.0 || 19.0.0-rc-7771d3a7-20240827",
111+
"react": "^18.2.0",
112+
"react-dom": "^18.2.0",
113113
"sass": "^1.3.0"
114114
},
115115
"peerDependenciesMeta": {

packages/next/src/build/shims/ReactDOMServerEdgeIfAvailable.d.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

packages/next/src/build/shims/ReactDOMServerEdgeIfAvailable.js

Lines changed: 0 additions & 18 deletions
This file was deleted.

packages/next/src/build/webpack-config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ const NEXT_PROJECT_ROOT_DIST_CLIENT = path.join(
108108
'client'
109109
)
110110

111-
if (parseInt(React.version) < 18) {
112-
throw new Error('Next.js requires react >= 18.2.0 to be installed.')
111+
if (parseInt(React.version) !== 18) {
112+
throw new Error('Next.js requires react@^18.2.0 to be installed.')
113113
}
114114

115115
export const babelIncludeRegexes: RegExp[] = [

packages/next/src/server/render.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import type { Revalidate, SwrDelta } from './lib/revalidate'
4040
import type { COMPILER_NAMES } from '../shared/lib/constants'
4141

4242
import React, { type JSX } from 'react'
43-
import ReactDOMServerEdge from '../build/shims/ReactDOMServerEdgeIfAvailable'
43+
import ReactDOMServerBrowser from 'react-dom/server.browser'
4444
import { StyleRegistry, createStyleRegistry } from 'styled-jsx'
4545
import {
4646
GSP_NO_RETURNED_VALUE,
@@ -127,7 +127,8 @@ function noRouter() {
127127
}
128128

129129
async function renderToString(element: React.ReactElement) {
130-
const renderStream = await ReactDOMServerEdge.renderToReadableStream(element)
130+
const renderStream =
131+
await ReactDOMServerBrowser.renderToReadableStream(element)
131132
await renderStream.allReady
132133
return streamToString(renderStream)
133134
}
@@ -1322,7 +1323,7 @@ export async function renderToHTMLImpl(
13221323
) => {
13231324
const content = renderContent(EnhancedApp, EnhancedComponent)
13241325
return await renderToInitialFizzStream({
1325-
ReactDOMServer: ReactDOMServerEdge,
1326+
ReactDOMServer: ReactDOMServerBrowser,
13261327
element: content,
13271328
})
13281329
}

packages/next/types/react-dom.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ declare module 'react-dom/server.edge' {
7070
>
7171
}
7272

73+
declare module 'react-dom/server.browser' {
74+
export * from 'react-dom/server.edge'
75+
}
76+
7377
declare module 'react-dom/static.edge' {
7478
import type { JSX } from 'react'
7579
/**

0 commit comments

Comments
 (0)