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