diff --git a/editors/editoria/src/Editoria.js b/editors/editoria/src/Editoria.js index c4dc8f5c990a0e25ec281476dacecb652ccdab56..e67d6f82ee4107034d3ef111a07b3733a9b93da9 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 5fc679e6db852dabe7f01b0f5fca876c34888a00..96b4ff8de7d43c60e58d977e2a33318dd1dcd879 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 652ecfe125884bc0e30b56a7f987bff789dab1b0..aa664d0ad5f075209a2f18ce95c846906197b7b9 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" &&