From 675fc8c3a6415159c71577c5f769ed2bfe3f4edc Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Wed, 6 May 2020 18:03:13 +0300
Subject: [PATCH] transform comment before merging them into document

---
 wax-prosemirror-core/src/WaxView.js           |  5 ++++
 .../src/helpers/TransformPasted.js            | 23 +++++++++++++++++++
 2 files changed, 28 insertions(+)
 create mode 100644 wax-prosemirror-core/src/helpers/TransformPasted.js

diff --git a/wax-prosemirror-core/src/WaxView.js b/wax-prosemirror-core/src/WaxView.js
index 439515b5e..05450beb9 100644
--- a/wax-prosemirror-core/src/WaxView.js
+++ b/wax-prosemirror-core/src/WaxView.js
@@ -3,10 +3,12 @@ import React, { useEffect, useRef, useContext } from "react";
 import applyDevTools from "prosemirror-dev-tools";
 import { EditorState } from "prosemirror-state";
 import { EditorView } from "prosemirror-view";
+
 import "prosemirror-view/style/prosemirror.css";
 
 import { trackedTransaction } from "wax-prosemirror-services";
 import { WaxContext } from "./ioc-react";
+import transformPasted from "./helpers/TransformPasted";
 
 export default props => {
   const {
@@ -36,6 +38,9 @@ export default props => {
                 onBlur(view.state.doc.content);
               }
             : null
+        },
+        transformPasted: slice => {
+          return transformPasted(slice, view);
         }
       }
     );
diff --git a/wax-prosemirror-core/src/helpers/TransformPasted.js b/wax-prosemirror-core/src/helpers/TransformPasted.js
new file mode 100644
index 000000000..9ff762af7
--- /dev/null
+++ b/wax-prosemirror-core/src/helpers/TransformPasted.js
@@ -0,0 +1,23 @@
+import { v4 as uuidv4 } from "uuid";
+import { DocumentHelpers } from "wax-prosemirror-utilities";
+
+const transformPasted = (slice, view) => {
+  const { content } = slice;
+  const commentNodes = DocumentHelpers.findChildrenByMark(
+    content,
+    view.state.schema.marks.comment,
+    true
+  );
+  const allComments = commentNodes.map(node => {
+    return node.node.marks.filter(comment => {
+      return comment.type.name === "comment";
+    });
+  });
+
+  allComments.forEach(comment => {
+    comment[0].attrs.id = uuidv4();
+  });
+  return slice;
+};
+
+export default transformPasted;
-- 
GitLab