diff --git a/wax-prosemirror-core/src/helpers/TransformPasted.js b/wax-prosemirror-core/src/helpers/TransformPasted.js index 9ff762af758dd6e67cc90627e8f87e574a977ddb..5fc679e6db852dabe7f01b0f5fca876c34888a00 100644 --- a/wax-prosemirror-core/src/helpers/TransformPasted.js +++ b/wax-prosemirror-core/src/helpers/TransformPasted.js @@ -8,15 +8,28 @@ const transformPasted = (slice, view) => { view.state.schema.marks.comment, true ); + + const notes = DocumentHelpers.findChildrenByType( + content, + view.state.schema.nodes.footnote, + true + ); + const allComments = commentNodes.map(node => { return node.node.marks.filter(comment => { return comment.type.name === "comment"; }); }); + //TODO check to alter attr with transform allComments.forEach(comment => { comment[0].attrs.id = uuidv4(); }); + + notes.forEach(note => { + note.node.attrs.id = uuidv4(); + }); + return slice; }; diff --git a/wax-prosemirror-services/src/NoteService/Editor.js b/wax-prosemirror-services/src/NoteService/Editor.js index f10e5ea5342043af49d58477db69cbe7e525e27f..12ce67a8888d038999c8868a8cafe5e6d775ff00 100644 --- a/wax-prosemirror-services/src/NoteService/Editor.js +++ b/wax-prosemirror-services/src/NoteService/Editor.js @@ -10,6 +10,7 @@ import { Commands } from "wax-prosemirror-utilities"; import { NoteEditorContainer } from "wax-prosemirror-components"; import { DocumentHelpers } from "wax-prosemirror-utilities"; import { filter } from "lodash"; +import transformPasted from "./helpers/TransformPasted"; export default ({ node, view }) => { const editorRef = useRef(); @@ -62,6 +63,9 @@ export default ({ node, view }) => { // the parent editor is focused. if (noteView.hasFocus()) noteView.focus(); } + }, + transformPasted: slice => { + return transformPasted(slice, noteView); } } ); diff --git a/wax-prosemirror-services/src/NoteService/helpers/TransformPasted.js b/wax-prosemirror-services/src/NoteService/helpers/TransformPasted.js new file mode 100644 index 0000000000000000000000000000000000000000..0e2e797a260b87da7afce1d498014253aeb63060 --- /dev/null +++ b/wax-prosemirror-services/src/NoteService/helpers/TransformPasted.js @@ -0,0 +1,26 @@ +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"; + }); + }); + + //TODO check to alter attr with transform + allComments.forEach(comment => { + comment[0].attrs.id = uuidv4(); + }); + + return slice; +}; + +export default transformPasted;