-
Notifications
You must be signed in to change notification settings - Fork 0
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
fix: yjs collaboration plugin in react strict mode #18
fix: yjs collaboration plugin in react strict mode #18
Conversation
Clone of the PR facebook/lexical#6271 |
My review is in progress 📖 - I will have feedback for you in a few minutes! |
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have reviewed your code and did not find any issues!
Please note that I can make mistakes, and you should still encourage your team to review your code as well.
Description
The collaboration plugin doesn't work well in nextjs 14.2 with strict mode enabled. See videos below to see how it breaks. I fixed the issues by relying on a useEffect instead of a useMemo to initialize yjs binding and provider.
Relevant thread
https://discord.com/channels/953974421008293909/1233102329931366531/1233102329931366531
Test plan
LIVEBLOCKS_SECRET_KEY
to the root.env.local
file. Alternatively, I can send you a secret key as well.npm run dev
and test the editor on multiple tabs/windows/browsers.LexicalCollaborationPlugin
file into node_modules.next
folder because nextjs caches built modules.rm -r .next && npm run dev
Before
https://www.loom.com/share/460727ea35b04e26a311d55d5283be3
After
https://www.loom.com/share/d3a2701d4ef6456a9bd7c9a202d38ebe
Note
I tried to runNever mind, it was just an error with my changes.npm run build-release
, but it didn't work due to facebook/lexical#5420 so I had to compile "manually".Description by Korbit AI
Note
This feature is in early access. You can enable or disable it in the Korbit Console.
What change is being made?
Fix the Yjs collaboration plugin to ensure compatibility with React's strict mode.
Why are these changes being made?
The Yjs collaboration plugin was not functioning correctly in React's strict mode, causing issues in collaborative editing. This fix addresses those issues, ensuring smooth operation in strict mode environments.