From 7a7f2bea1b7c966f192fb00a42e83e335a4bf6fc Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Mon, 22 Jun 2020 14:09:59 +0300 Subject: [PATCH] pass group to markWrapping --- wax-prosemirror-core/src/WaxView.js | 3 ++- .../src/nodes/authorNode.js | 1 - .../trackChangesNodes/authorTrackNode.js | 1 - .../track-changes/helpers/markWrapping.js | 8 +++++-- .../helpers/replaceAroundStep.js | 21 +++++++++++++++---- .../track-changes/trackedTransaction.js | 10 ++++----- 6 files changed, 30 insertions(+), 14 deletions(-) diff --git a/wax-prosemirror-core/src/WaxView.js b/wax-prosemirror-core/src/WaxView.js index 7f593654d..035bbe305 100644 --- a/wax-prosemirror-core/src/WaxView.js +++ b/wax-prosemirror-core/src/WaxView.js @@ -56,8 +56,9 @@ export default props => { const dispatchTransaction = transaction => { const { TrackChange } = props; + const group = "main"; const tr = TrackChange - ? trackedTransaction(transaction, view.state, user) + ? trackedTransaction(transaction, view.state, user, group) : transaction; const state = view.state.apply(tr); diff --git a/wax-prosemirror-schema/src/nodes/authorNode.js b/wax-prosemirror-schema/src/nodes/authorNode.js index aa38f1bbe..5b954aac4 100644 --- a/wax-prosemirror-schema/src/nodes/authorNode.js +++ b/wax-prosemirror-schema/src/nodes/authorNode.js @@ -20,7 +20,6 @@ const author = { toDOM(hook, next) { const attrs = { class: hook.node.attrs.class }; hook.value = ["p", attrs, 0]; - console.log(hook); next(); } }; diff --git a/wax-prosemirror-schema/src/nodes/trackChangesNodes/authorTrackNode.js b/wax-prosemirror-schema/src/nodes/trackChangesNodes/authorTrackNode.js index 6cfb567f2..4ee38f0b2 100644 --- a/wax-prosemirror-schema/src/nodes/trackChangesNodes/authorTrackNode.js +++ b/wax-prosemirror-schema/src/nodes/trackChangesNodes/authorTrackNode.js @@ -25,7 +25,6 @@ const author = { ], toDOM(hook, next) { if (hook.node.attrs.track.length) { - console.log(hook); Object.assign(hook.value[1], { "data-id": hook.node.attrs.id, "data-track": JSON.stringify(hook.node.attrs.track), diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/markWrapping.js b/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/markWrapping.js index 248cc9762..08581b9b1 100644 --- a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/markWrapping.js +++ b/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/markWrapping.js @@ -1,6 +1,6 @@ import { v4 as uuidv4 } from "uuid"; -const markWrapping = (tr, pos, oldNode, newNode, user, date) => { +const markWrapping = (tr, pos, oldNode, newNode, user, date, group) => { let track = oldNode.attrs.track.slice(), blockTrack = track.find(track => track.type === "block_change"); @@ -35,7 +35,11 @@ const markWrapping = (tr, pos, oldNode, newNode, user, date) => { } track.push(blockTrack); } - tr.setNodeMarkup(pos, null, Object.assign({}, newNode.attrs, { track })); + tr.setNodeMarkup( + pos, + null, + Object.assign({}, newNode.attrs, { track, group }) + ); }; export default markWrapping; diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceAroundStep.js b/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceAroundStep.js index fd4aca516..55902bc14 100644 --- a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceAroundStep.js +++ b/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceAroundStep.js @@ -2,17 +2,29 @@ import markDeletion from "./markDeletion"; import markInsertion from "./markInsertion"; import markWrapping from "./markWrapping"; -const replaceAroundStep = (state, tr, step, newTr, map, doc, user, date) => { +const replaceAroundStep = ( + state, + tr, + step, + newTr, + map, + doc, + user, + date, + group +) => { if (step.from === step.gapFrom && step.to === step.gapTo) { // wrapped in something newTr.step(step); const from = step.getMap().map(step.from, -1); const to = step.getMap().map(step.gapFrom); - markInsertion(newTr, from, to, user, date); + markInsertion(newTr, from, to, user, date, group); } else if (!step.slice.size) { // unwrapped from something map.appendMap(step.invert(doc).getMap()); - map.appendMap(markDeletion(newTr, step.from, step.gapFrom, user, date)); + map.appendMap( + markDeletion(newTr, step.from, step.gapFrom, user, date, group) + ); } else if ( step.slice.size === 2 && step.gapFrom - step.from === 1 && @@ -28,7 +40,8 @@ const replaceAroundStep = (state, tr, step, newTr, map, doc, user, date) => { oldNode, step.slice.content.firstChild, user, - date + date, + group ); } } else { diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js b/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js index 2a6d21e98..ac9e3f40c 100644 --- a/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js +++ b/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js @@ -20,7 +20,7 @@ import replaceAroundStep from "./helpers/replaceAroundStep"; import addMarkStep from "./helpers/addMarkStep"; import removeMarkStep from "./helpers/removeMarkStep"; -const trackedTransaction = (tr, state, user) => { +const trackedTransaction = (tr, state, user, group) => { if ( !tr.steps.length || (tr.meta && @@ -45,16 +45,16 @@ const trackedTransaction = (tr, state, user) => { switch (step.constructor) { case ReplaceStep: - replaceStep(state, tr, step, newTr, map, doc, user, date); + replaceStep(state, tr, step, newTr, map, doc, user, date, group); break; case ReplaceAroundStep: - replaceAroundStep(state, tr, step, newTr, map, doc, user, date); + replaceAroundStep(state, tr, step, newTr, map, doc, user, date, group); break; case AddMarkStep: - addMarkStep(state, tr, step, newTr, map, doc, user, date); + addMarkStep(state, tr, step, newTr, map, doc, user, date, group); break; case RemoveMarkStep: - removeMarkStep(state, tr, step, newTr, map, doc, user, date); + removeMarkStep(state, tr, step, newTr, map, doc, user, date, group); break; } }); -- GitLab