Skip to content

@blocknote/react doesn't work with React 19 RC #1021

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
1 task
leonsilicon opened this issue Aug 21, 2024 · 9 comments · Fixed by #1173
Closed
1 task

@blocknote/react doesn't work with React 19 RC #1021

leonsilicon opened this issue Aug 21, 2024 · 9 comments · Fixed by #1173
Labels
bug Something isn't working

Comments

@leonsilicon
Copy link

leonsilicon commented Aug 21, 2024

Describe the bug
@blocknote/react doesn't work with React 19 RC as it uses React internals
blocknote
CleanShot 2024-08-21 at 14 25 54

To Reproduce
https://stackblitz.com/edit/github-ekywvq?file=package.json

Misc

  • Node version: 20.16.0
  • Package manager: bun
  • Browser: Arc
  • I'm a sponsor and would appreciate if you could look into this sooner than later 💖
@leonsilicon leonsilicon added the bug Something isn't working label Aug 21, 2024
@YousefED
Copy link
Collaborator

Thanks @leonsilicon. I don't think this is because BlockNote uses internal APIs, but because we have a peerdependency:

 "peerDependencies": {
    "react": "^18",
    "react-dom": "^18"
  },

This will cause react 18 to be installed in node_modules/@blocknote/react/node_modules, causing two different react runtimes side by side.

I haven't tested upgrading this myself, but perhaps this pointer could work. I recommend checking and testing blocknote by checking out your own copy and upgrading the peer dependency and running the tests.

What are you building with BlockNote btw?

@leonsilicon
Copy link
Author

leonsilicon commented Aug 24, 2024

Ah, sorry I initially saw the error stacktrace point to a file in the @blocknote/react node_modules folder (dist/blocknote-react.js) and assumed it was Blocknote-specific code; upon a second look it seems like that's actually React 18's JSX Runtime library code react-jsx-runtime.(development|production).js bundled into Blocknote's distribution build.

I'm not sure how one would make that bundled jsx-runtime code compatible with both React 18 and 19 but in the meantime will try bumping the peerDependencies and rebuilding to see if that fixes the issue!

@KingXP-Pythoner
Copy link

struggling with this currently and saw this. makes sense now. ill test out bumping the peerdeps

Thanks @leonsilicon. I don't think this is because BlockNote uses internal APIs, but because we have a peerdependency:

 "peerDependencies": {
    "react": "^18",
    "react-dom": "^18"
  },

This will cause react 18 to be installed in node_modules/@blocknote/react/node_modules, causing two different react runtimes side by side.

I haven't tested upgrading this myself, but perhaps this pointer could work. I recommend checking and testing blocknote by checking out your own copy and upgrading the peer dependency and running the tests.

What are you building with BlockNote btw?

@KingXP-Pythoner
Copy link

struggling with this currently and saw this. makes sense now. ill test out bumping the peerdeps

Thanks @leonsilicon. I don't think this is because BlockNote uses internal APIs, but because we have a peerdependency:

 "peerDependencies": {
    "react": "^18",
    "react-dom": "^18"
  },

This will cause react 18 to be installed in node_modules/@blocknote/react/node_modules, causing two different react runtimes side by side.
I haven't tested upgrading this myself, but perhaps this pointer could work. I recommend checking and testing blocknote by checking out your own copy and upgrading the peer dependency and running the tests.
What are you building with BlockNote btw?

update: I was unable to do a rebuild as I kept running into errors. i'm a noob when it comes to low-level library stuff. will just have to wait till blocknote supports react 19 when it comes out :)

@irakli2206
Copy link
Contributor

Still facing the same issue, peerDependencies don't help at all.

@KingXP-Pythoner
Copy link

Still facing the same issue, peerDependencies don't help at all.

Good news is there's a PR already for this 😁

@oconnorjohnson
Copy link

A new PR? I don't see one open -- I'm still facing the same issue in the screenshot, after updating BlockNote and my app to Next.js 15

@KingXP-Pythoner
Copy link

A new PR? I don't see one open -- I'm still facing the same issue in the screenshot, after updating BlockNote and my app to Next.js 15

PR #1173

@ryleyrandall22
Copy link

@YousefED Thank you for working on this so quickly!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants