Skip to content

Commit

Permalink
fix: Improve legacyRoot error message
Browse files Browse the repository at this point in the history
  • Loading branch information
eps1lon committed Apr 11, 2024
1 parent 1645d21 commit 725ae27
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 5 deletions.
4 changes: 2 additions & 2 deletions src/__tests__/render.js
Expand Up @@ -234,7 +234,7 @@ describe('render API', () => {
expect(() => {
render(<div />, {legacyRoot: true})
}).toThrowErrorMatchingInlineSnapshot(
`\`legacyRoot: true\` is not supported in this version of React. Please use React 18 instead.`,
`\`legacyRoot: true\` is not supported in this version of React. If your app runs React 19 or later, you should remove this flag. If your app runs React 18 or earlier, and you need help with upgrading your app, visit https://react.dev/blog/2022/03/08/react-18-upgrade-guide.`,
)
})

Expand All @@ -259,7 +259,7 @@ describe('render API', () => {
expect(() => {
render(ui, {container, hydrate: true, legacyRoot: true})
}).toThrowErrorMatchingInlineSnapshot(
`\`legacyRoot: true\` is not supported in this version of React. Please use React 18 instead.`,
`\`legacyRoot: true\` is not supported in this version of React. If your app runs React 19 or later, you should remove this flag. If your app runs React 18 or earlier, and you need help with upgrading your app, visit https://react.dev/blog/2022/03/08/react-18-upgrade-guide.`,
)
})
})
2 changes: 1 addition & 1 deletion src/__tests__/renderHook.js
Expand Up @@ -108,6 +108,6 @@ testGateReact19('legacyRoot throws', () => {
},
).result
}).toThrowErrorMatchingInlineSnapshot(
`\`legacyRoot: true\` is not supported in this version of React. Please use React 18 instead.`,
`\`legacyRoot: true\` is not supported in this version of React. If your app runs React 19 or later, you should remove this flag. If your app runs React 18 or earlier, and you need help with upgrading your app, visit https://react.dev/blog/2022/03/08/react-18-upgrade-guide.`,
)
})
8 changes: 6 additions & 2 deletions src/pure.js
Expand Up @@ -209,7 +209,9 @@ function render(
) {
if (legacyRoot && typeof ReactDOM.render !== 'function') {
const error = new Error(
'`legacyRoot: true` is not supported in this version of React. Please use React 18 instead.',
'`legacyRoot: true` is not supported in this version of React. ' +
'If your app runs React 19 or later, you should remove this flag. ' +
'If your app runs React 18 or earlier, and you need help with upgrading your app, visit https://react.dev/blog/2022/03/08/react-18-upgrade-guide.',
)
Error.captureStackTrace(error, render)
throw error
Expand Down Expand Up @@ -274,7 +276,9 @@ function renderHook(renderCallback, options = {}) {

if (renderOptions.legacyRoot && typeof ReactDOM.render !== 'function') {
const error = new Error(
'`legacyRoot: true` is not supported in this version of React. Please use React 18 instead.',
'`legacyRoot: true` is not supported in this version of React. ' +
'If your app runs React 19 or later, you should remove this flag. ' +
'If your app runs React 18 or earlier, and you need help with upgrading your app, visit https://react.dev/blog/2022/03/08/react-18-upgrade-guide.',
)
Error.captureStackTrace(error, renderHook)
throw error
Expand Down

0 comments on commit 725ae27

Please sign in to comment.