Skip to content

Commit 6f4503e

Browse files
committed
fix: Use new react-dom/client entrypoint
1 parent 33cc72c commit 6f4503e

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

package.json

+6
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,12 @@
6969
"react/no-adjacent-inline-elements": "off",
7070
"import/no-unassigned-import": "off",
7171
"import/named": "off",
72+
"import/no-unresolved": [
73+
"error",
74+
{
75+
"ignore": "react-dom/client"
76+
}
77+
],
7278
"testing-library/no-container": "off",
7379
"testing-library/no-dom-import": "off",
7480
"testing-library/no-unnecessary-act": "off",

src/__tests__/render.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import * as React from 'react'
22
import ReactDOM from 'react-dom'
3+
import ReactDOMClient from 'react-dom/client'
34
import ReactDOMServer from 'react-dom/server'
45
import {fireEvent, render, screen} from '../'
56

@@ -110,7 +111,7 @@ test('flushes useEffect cleanup functions sync on unmount()', () => {
110111
})
111112

112113
test('throws if `legacyRoot: false` is used with an incomaptible version', () => {
113-
const isConcurrentReact = typeof ReactDOM.createRoot === 'function'
114+
const isConcurrentReact = typeof ReactDOMClient.createRoot === 'function'
114115

115116
const performConcurrentRender = () => render(<div />, {legacyRoot: false})
116117

src/pure.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import * as React from 'react'
22
import ReactDOM from 'react-dom'
3+
import * as ReactDOMClient from 'react-dom/client'
34
import {
45
getQueriesForElement,
56
prettyDOM,
@@ -64,21 +65,21 @@ function createConcurrentRoot(
6465
container,
6566
{hydrate, ui, wrapper: WrapperComponent},
6667
) {
67-
if (typeof ReactDOM.createRoot !== 'function') {
68+
if (typeof ReactDOMClient.createRoot !== 'function') {
6869
throw new TypeError(
6970
`Attempted to use concurrent React with \`react-dom@${ReactDOM.version}\`. Be sure to use the \`next\` or \`experimental\` release channel (https://reactjs.org/docs/release-channels.html).'`,
7071
)
7172
}
7273
let root
7374
if (hydrate) {
7475
act(() => {
75-
root = ReactDOM.hydrateRoot(
76+
root = ReactDOMClient.hydrateRoot(
7677
container,
7778
WrapperComponent ? React.createElement(WrapperComponent, null, ui) : ui,
7879
)
7980
})
8081
} else {
81-
root = ReactDOM.createRoot(container)
82+
root = ReactDOMClient.createRoot(container)
8283
}
8384

8485
return {
@@ -175,7 +176,7 @@ function render(
175176
{
176177
container,
177178
baseElement = container,
178-
legacyRoot = typeof ReactDOM.createRoot !== 'function',
179+
legacyRoot = typeof ReactDOMClient.createRoot !== 'function',
179180
queries,
180181
hydrate = false,
181182
wrapper,

0 commit comments

Comments
 (0)