diff --git a/wax-prosemirror-plugins/src/trackChanges/TrackChangePlugin.js b/wax-prosemirror-plugins/src/trackChanges/TrackChangePlugin.js index e1b800bb767d1db9492d0e5f31a60b9e8498d364..0de481e2e1ea3a6c526c4938fac4aca49c692059 100644 --- a/wax-prosemirror-plugins/src/trackChanges/TrackChangePlugin.js +++ b/wax-prosemirror-plugins/src/trackChanges/TrackChangePlugin.js @@ -2,7 +2,8 @@ import { Plugin, PluginKey } from 'prosemirror-state'; import { Decoration, DecorationSet } from 'prosemirror-view'; import findSelectedChanges from './FindSelectedChanges'; -import { deactivateAllSelectedChanges } from './helpers'; + +// import { deactivateAllSelectedChanges } from './helpers'; export const key = new PluginKey('track'); export const selectedInsertionSpec = {}; @@ -111,7 +112,7 @@ export default options => { }, handleDOMEvents: { focus: (view, _event) => { - view.dispatch(deactivateAllSelectedChanges(view.state.tr)); + // view.dispatch(deactivateAllSelectedChanges(view.state.tr)); }, }, }, diff --git a/wax-prosemirror-plugins/src/trackChanges/helpers.js b/wax-prosemirror-plugins/src/trackChanges/helpers.js index 0294097026a2f96d2e68c0165f67d5b25f244649..0cdeda1253ceda89b1b0f69e9ef563df5ec0b73d 100644 --- a/wax-prosemirror-plugins/src/trackChanges/helpers.js +++ b/wax-prosemirror-plugins/src/trackChanges/helpers.js @@ -1,84 +1,84 @@ -import { Decoration, DecorationSet } from 'prosemirror-view'; -import { DocumentHelpers } from 'wax-prosemirror-utilities'; - -import { - key, - selectedInsertionSpec, - selectedDeletionSpec, - selectedChangeFormatSpec, - selectedChangeBlockSpec, -} from './TrackChangePlugin'; - -export function getSelectedChanges(state) { - const { decos } = key.getState(state); - - const insertion = decos.find( - undefined, - undefined, - spec => spec === selectedInsertionSpec, - )[0]; - const deletion = decos.find( - undefined, - undefined, - spec => spec === selectedDeletionSpec, - )[0]; - const format_change = decos.find( - undefined, - undefined, - spec => spec === selectedChangeFormatSpec, - )[0]; - const block_change = decos.find( - undefined, - undefined, - spec => spec === selectedChangeBlockSpec, - )[0]; - - return { insertion, deletion, format_change, block_change }; -} - -export function setSelectedChanges(state, type, pos) { - const { tr } = state; - const node = tr.doc.nodeAt(pos); - const mark = node.attrs.track - ? node.attrs.track.find(trackAttr => trackAttr.type === type) - : node.marks.find(mark => mark.type.name === type); - if (!mark) { - return; - } - - DocumentHelpers.findMarkPosition(state, pos, type); - - const selectedChange = node.isInline - ? DocumentHelpers.findMarkPosition(state, pos, type) - : { from: pos, to: pos + node.nodeSize }; - let decos = DecorationSet.empty; - let spec; - if (type === 'insertion') { - spec = selectedInsertionSpec; - } else if (type === 'deletion') { - spec = selectedDeletionSpec; - } else if (type === 'format_change') { - spec = selectedChangeFormatSpec; - } else if (type === 'block_change') { - spec = selectedChangeBlockSpec; - } - const decoType = node.isInline ? Decoration.inline : Decoration.node; - decos = decos.add(tr.doc, [ - decoType( - selectedChange.from, - selectedChange.to, - { - class: `selected-${type}`, - }, - spec, - ), - ]); - tr.setMeta(key, { decos }).setMeta('track', true); -} - -export function deactivateAllSelectedChanges(tr) { - const pluginState = { - decos: DecorationSet.empty, - }; - return tr.setMeta(key, pluginState).setMeta('track', true); -} +// import { Decoration, DecorationSet } from 'prosemirror-view'; +// import { DocumentHelpers } from 'wax-prosemirror-utilities'; +// +// import { +// key, +// selectedInsertionSpec, +// selectedDeletionSpec, +// selectedChangeFormatSpec, +// selectedChangeBlockSpec, +// } from './TrackChangePlugin'; +// +// export function getSelectedChanges(state) { +// const { decos } = key.getState(state); +// +// const insertion = decos.find( +// undefined, +// undefined, +// spec => spec === selectedInsertionSpec, +// )[0]; +// const deletion = decos.find( +// undefined, +// undefined, +// spec => spec === selectedDeletionSpec, +// )[0]; +// const format_change = decos.find( +// undefined, +// undefined, +// spec => spec === selectedChangeFormatSpec, +// )[0]; +// const block_change = decos.find( +// undefined, +// undefined, +// spec => spec === selectedChangeBlockSpec, +// )[0]; +// +// return { insertion, deletion, format_change, block_change }; +// } +// +// export function setSelectedChanges(state, type, pos) { +// const { tr } = state; +// const node = tr.doc.nodeAt(pos); +// const mark = node.attrs.track +// ? node.attrs.track.find(trackAttr => trackAttr.type === type) +// : node.marks.find(mark => mark.type.name === type); +// if (!mark) { +// return; +// } +// +// DocumentHelpers.findMarkPosition(state, pos, type); +// +// const selectedChange = node.isInline +// ? DocumentHelpers.findMarkPosition(state, pos, type) +// : { from: pos, to: pos + node.nodeSize }; +// let decos = DecorationSet.empty; +// let spec; +// if (type === 'insertion') { +// spec = selectedInsertionSpec; +// } else if (type === 'deletion') { +// spec = selectedDeletionSpec; +// } else if (type === 'format_change') { +// spec = selectedChangeFormatSpec; +// } else if (type === 'block_change') { +// spec = selectedChangeBlockSpec; +// } +// const decoType = node.isInline ? Decoration.inline : Decoration.node; +// decos = decos.add(tr.doc, [ +// decoType( +// selectedChange.from, +// selectedChange.to, +// { +// class: `selected-${type}`, +// }, +// spec, +// ), +// ]); +// tr.setMeta(key, { decos }).setMeta('track', true); +// } +// +// export function deactivateAllSelectedChanges(tr) { +// const pluginState = { +// decos: DecorationSet.empty, +// }; +// return tr.setMeta(key, pluginState).setMeta('track', true); +// }