-
Notifications
You must be signed in to change notification settings - Fork 1
Improve/yjs document types #17
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
Improve/yjs document types #17
Conversation
…p to standardizing Y types stored in the ydoc
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message. To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
|
Warning: Type of PR label mismatch To merge this PR, it requires exactly 1 label indicating the type of PR. Other labels are optional and not being checked here.
Read more about Type labels in Gutenberg. Don't worry if you don't have the required permissions to add labels; the PR reviewer should be able to help with the task. |
ac0ffa2
into
add/experimental-collaborative-editing
WIP. Improve consistency of types stored in the Yjs synced document:
blocktypes toY.Map. Previously this was true for root blocks, but not for inner blocks.innerBlocksuse theY.Arraytype to match root blocks. They were previously aBlock[], which was different that the rootblockstype (Y.Array< YBlock >).rich-texttypes to useY.Text. We'll probably need more logic to ensure relative position changes bind correctly to text updates, but this is a good start.All of the consistency updates make parsing blocks more straightforward, and simplify types. This is an important step to implementing relative cursors, and typing within the same rich text block.
We've also improved the
mergeCrdtBlocks()function to recurse and mergeinnerBlockswith the same strategy as root blocks.