From bb6ecc32fd78ea00667a2f9b82857e6105ef3dce Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Mon, 14 Dec 2020 17:02:43 +0200 Subject: [PATCH] feat(track-change): add active --- .../src/components/rightArea/RightArea.js | 11 +++++++++-- .../components/trackChanges/ConnectedTrackChange.js | 11 +++++++++-- .../src/trackChanges/TrackChangePlugin.js | 3 +++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/wax-prosemirror-components/src/components/rightArea/RightArea.js b/wax-prosemirror-components/src/components/rightArea/RightArea.js index faf4efbac..51e8808b1 100644 --- a/wax-prosemirror-components/src/components/rightArea/RightArea.js +++ b/wax-prosemirror-components/src/components/rightArea/RightArea.js @@ -15,6 +15,8 @@ export default ({ area }) => { activeView, } = useContext(WaxContext); const commentPlugin = app.PmPlugins.get('commentPlugin'); + const trakChangePlugin = app.PmPlugins.get('trackChngePlugin'); + const [marksNodes, setMarksNodes] = useState([]); const [position, setPosition] = useState(); @@ -39,9 +41,15 @@ export default ({ area }) => { markNode instanceof Mark ? markNode.attrs.id : markNode.node.attrs.id; const activeComment = commentPlugin.getState(activeView.state).comment; + const activeTrackChange = trakChangePlugin.getState(activeView.state) + .trackChange; let isActive = false; - if (activeComment && id === activeComment.attrs.id) isActive = true; + if ( + (activeComment && id === activeComment.attrs.id) || + (activeTrackChange && id === activeTrackChange.attrs.id) + ) + isActive = true; // annotation top if (area === 'main') { @@ -120,7 +128,6 @@ export default ({ area }) => { } } }); - console.log(allCommentsTop); return allCommentsTop; }); diff --git a/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js b/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js index 18fbd7c8c..eebeca8bf 100644 --- a/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js +++ b/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js @@ -29,12 +29,19 @@ export default ({ trackChangeId, top, recalculateTops }) => { } = useContext(WaxContext); const { state, dispatch } = activeView; - console.log('topp', top, trackChangeId); + let active = false; const styles = { top: `${top}px`, }; - const active = false; + const trakChangePlugin = app.PmPlugins.get('trackChngePlugin'); + const activeTrackChange = trakChangePlugin.getState(activeView.state) + .trackChange; + + if (activeTrackChange && trackChangeId === activeTrackChange.attrs.id) { + active = true; + recalculateTops(); + } const MemorizedTrackChange = useMemo( () => ( diff --git a/wax-prosemirror-plugins/src/trackChanges/TrackChangePlugin.js b/wax-prosemirror-plugins/src/trackChanges/TrackChangePlugin.js index 5ebf2892b..b5256f441 100644 --- a/wax-prosemirror-plugins/src/trackChanges/TrackChangePlugin.js +++ b/wax-prosemirror-plugins/src/trackChanges/TrackChangePlugin.js @@ -25,6 +25,7 @@ export default options => { } = state; let { decos } = this.getState(oldState); + let currentTrackSelected; decos = DecorationSet.empty; if (tr.selectionSet) { const { insertion, deletion, formatChange } = findSelectedChanges( @@ -68,6 +69,7 @@ export default options => { ]); } if (formatChange) { + if (from === to) currentTrackSelected = formatChange; decos = decos.add(tr.doc, [ decoType(formatChange.from, formatChange.to, { class: 'selected-format-change', @@ -78,6 +80,7 @@ export default options => { decos = decos.map(tr.mapping, tr.doc); } return { + trackChange: currentTrackSelected, decos, }; }, -- GitLab