diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceAroundStep.js b/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceAroundStep.js index f83b25f67632f18ad8850e1825f3cef0538fa117..373ec42c13646e51f2094ec641b45519be3000ed 100644 --- a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceAroundStep.js +++ b/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceAroundStep.js @@ -1,6 +1,7 @@ import markDeletion from './markDeletion'; import markInsertion from './markInsertion'; import markWrapping from './markWrapping'; +import { liftListItem } from 'prosemirror-schema-list'; const replaceAroundStep = ( state, @@ -45,8 +46,8 @@ const replaceAroundStep = ( ); } } else { - console.log('to fix'); - newTr.step(step); + console.log('to fix lift list item'); + // newTr.step(step); const ranges = [ { from: step.getMap().map(step.from, -1), @@ -57,12 +58,18 @@ const replaceAroundStep = ( to: step.getMap().map(step.to), }, ]; + ranges.forEach(range => doc.nodesBetween(range.from, range.to, (node, pos) => { if (pos < range.from) { return true; } - markInsertion(newTr, range.from, range.to, user, date); + liftListItem(node.type)(state, newTr => { + newTr.steps.forEach(step => { + tr.step(step); + map.appendMap(step.getMap()); + }); + }); }), ); } diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js b/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js index 1e4e88eadb14558cffcb55af1f297b3ff58e97d2..ff0902f65c33988803dade2c73577acd43926349 100644 --- a/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js +++ b/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js @@ -27,7 +27,11 @@ const trackedTransaction = (tr, state, user) => { // images if (tr.meta.inputType === 'backwardsDelete' && !tr.steps.lenght) { const $pos = state.selection.$anchor; - if ($pos.depth === 1) return tr; + let node; + if ($pos.depth === 1) { + node = $pos.node($pos.depth); + if (node.content.content[0].type.name === 'image') return tr; + } } if (