From e7329b3656c6a1345c6cca1868063176c854485b Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Thu, 6 Aug 2020 19:47:55 +0300
Subject: [PATCH] accept all deletions

---
 .../AcceptTrackChange.js                      | 20 ++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js b/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js
index 48192a422..9589c1b3c 100644
--- a/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js
+++ b/wax-prosemirror-services/src/TrackChangeService/AcceptTrackChangeService/AcceptTrackChange.js
@@ -1,4 +1,6 @@
-import { Mapping, RemoveMarkStep } from 'prosemirror-transform';
+import { Mapping, RemoveMarkStep, ReplaceStep } from 'prosemirror-transform';
+import { Slice } from 'prosemirror-model';
+
 import { minBy, maxBy } from 'lodash';
 
 import { injectable } from 'inversify';
@@ -21,6 +23,17 @@ class AcceptTrackChange extends Tools {
 
       state.doc.nodesBetween(from, to, (node, pos) => {
         if (
+          node.marks &&
+          node.marks.find(mark => mark.type.name === 'deletion')
+        ) {
+          const deletionStep = new ReplaceStep(
+            map.map(Math.max(pos, from)),
+            map.map(Math.min(pos + node.nodeSize, to)),
+            Slice.empty,
+          );
+          tr.step(deletionStep);
+          map.appendMap(deletionStep.getMap());
+        } else if (
           node.marks &&
           node.marks.find(mark => mark.type.name === 'insertion')
         ) {
@@ -29,13 +42,14 @@ class AcceptTrackChange extends Tools {
           );
           tr.step(
             new RemoveMarkStep(
-              map.map(maxBy(pos, from)),
-              map.map(minBy(pos + node.nodeSize, to)),
+              map.map(Math.max(pos, from)),
+              map.map(Math.min(pos + node.nodeSize, to)),
               insertionMark,
             ),
           );
         }
       });
+
       dispatch(tr);
     };
   }
-- 
GitLab