From 816290900cf71f6195a58329cfe4cc97ec7b5aae Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Fri, 19 Jun 2020 14:12:27 +0300
Subject: [PATCH] group pasted comments byId

---
 editors/editoria/src/Editoria.js              |  2 +-
 .../src/helpers/TransformPasted.js            | 21 +++++++++++++------
 .../src/comments/ActiveComment.js             |  8 +++++--
 3 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/editors/editoria/src/Editoria.js b/editors/editoria/src/Editoria.js
index c4dc8f5c9..e67d6f82e 100644
--- a/editors/editoria/src/Editoria.js
+++ b/editors/editoria/src/Editoria.js
@@ -49,7 +49,7 @@ const Editoria = () => (
       fileUpload={file => renderImage(file)}
       value={`<p class="paragraph"><span class="comment" data-id="834ba3c5-1fcf-4a42-8e2f-1f975f229716" data-conversation="[]" data-group="main">and a </span><span class="insertion" data-id="" data-user="1234" data-username="demo" data-date="26541557" data-group=""><span class="comment" data-id="834ba3c5-1fcf-4a42-8e2f-1f975f229716" data-conversation="[]" data-group="main">sdasdssd</span></span><span class="comment" data-id="834ba3c5-1fcf-4a42-8e2f-1f975f229716" data-conversation="[]" data-group="main">paragraph</span></p><p class="paragraph">more</p>`}
       layout={EditoriaLayout}
-      TrackChange
+      // TrackChange
       // onChange={source => console.log(source)}
       user={user}
     />
diff --git a/wax-prosemirror-core/src/helpers/TransformPasted.js b/wax-prosemirror-core/src/helpers/TransformPasted.js
index 5fc679e6d..96b4ff8de 100644
--- a/wax-prosemirror-core/src/helpers/TransformPasted.js
+++ b/wax-prosemirror-core/src/helpers/TransformPasted.js
@@ -15,16 +15,25 @@ const transformPasted = (slice, view) => {
     true
   );
 
-  const allComments = commentNodes.map(node => {
-    return node.node.marks.filter(comment => {
-      return comment.type.name === "comment";
+  const allComments = [];
+
+  commentNodes.map(node => {
+    node.node.marks.map(comment => {
+      if (comment.type.name === "comment") {
+        allComments.push(comment);
+      }
     });
   });
 
+  let groupedCommentsById = allComments.reduce((obj, mark) => {
+    obj[mark.attrs.id] = [...(obj[mark.attrs.id] || []), mark];
+    return obj;
+  }, {});
+
   //TODO check to alter attr with transform
-  allComments.forEach(comment => {
-    comment[0].attrs.id = uuidv4();
-  });
+  // allComments.forEach(comment => {
+  //   comment[0].attrs.id = uuidv4();
+  // });
 
   notes.forEach(note => {
     note.node.attrs.id = uuidv4();
diff --git a/wax-prosemirror-plugins/src/comments/ActiveComment.js b/wax-prosemirror-plugins/src/comments/ActiveComment.js
index 652ecfe12..aa664d0ad 100644
--- a/wax-prosemirror-plugins/src/comments/ActiveComment.js
+++ b/wax-prosemirror-plugins/src/comments/ActiveComment.js
@@ -9,10 +9,14 @@ const getComment = state => {
   const commentMark = state.schema.marks["comment"];
   const commentOnSelection = DocumentHelpers.findMark(state, commentMark);
   if (commentOnSelection) {
-    const allInlineNodes = DocumentHelpers.findInlineNodes(state.doc);
+    const commentNodes = DocumentHelpers.findChildrenByMark(
+      state.doc,
+      commentMark,
+      true
+    );
     const allCommentsWithSameId = [];
 
-    allInlineNodes.map(node => {
+    commentNodes.map(node => {
       node.node.marks.filter(mark => {
         if (
           mark.type.name === "comment" &&
-- 
GitLab