BlockNote
BlockNote copied to clipboard
Calling `editor.updateBlock()` in quick succession breaks the editor's undo/redo functionality
Describe the bug I'm using an (old) example from the docs to highlight blocks spanned by the current selection. The highlighting works just fine, but this seems to break the editor's undo/redo functionality.
To Reproduce The demo is here.
To reproduce the issue, please do the following:
- Type something in the initialized content
- Press
ctrl + zorcmd + zto undo what you typed. It will take multiple attempts to undo just one character. - Remove the
onSelectionChangeprop from<BlockNoteView /> - Type something again in the editor
- Now the undo should work just fine.
It looks like the editor.updateBlock() calls within the editor.forEachBlock() causes the editor's history to break. Is there an alternate way to update the style of blocks?
Misc
- Node version: 20.11.1
- Package manager: npm
- Browser: Firefox 126.0.1, Google Chrome 125.0.6422.142
Good catch! You're right, it does seem like calling updateBlock many times in a short time causes history to break. Seems like we should make it possible to update multiple blocks at once to prevent this.