yjs / y-prosemirror

ProseMirror editor binding for Yjs
https://demos.yjs.dev/prosemirror/prosemirror.html
MIT License
328 stars 115 forks source link

`ySyncPlugin` ignores `addToHistory:false` meta of `appendedTransaction` #141

Open romansp opened 11 months ago

romansp commented 11 months ago

Describe the bug ySyncPlugin ignores addToHistory: false of appendedTransaction thus root transaction gets added onto undo/redo stack.

To Reproduce Steps to reproduce the behavior:

  1. Clone fork with a test repro: https://github.com/romansp/y-prosemirror/tree/appendedTransaction-addToHistory-false
  2. Checkout the commit before the fix
  3. Run npm run test
  4. See that test named add to history ignore with append transaction plugin has failed

Expected behavior addToHistory: false should be respected if it comes from appendedTransaction. Root transaction should not appear on the undo/redo stack, and undoing/redoing should not have any affect.

Actual behavior Transaction is added onto undo stack.

Environment Information

Additional context Original prosemirror-history plugin does indeed check appendedTransaction and inspects for possible addToHistory: false as demonstrated here https://github.com/ProseMirror/prosemirror-history/blob/40d274a74d0fc0787aeca03634a64d0c78f18a50/src/history.ts#L277C15-L277C15