Skip to content
Snippets Groups Projects
Commit 04b6f40e authored by chris's avatar chris
Browse files

fix dependencies

parent c1ac6c22
No related branches found
No related tags found
1 merge request!123fix dependencies
...@@ -20,6 +20,9 @@ ...@@ -20,6 +20,9 @@
"react-dropdown": "^1.6.2", "react-dropdown": "^1.6.2",
"react-transition-group": "^4.3.0", "react-transition-group": "^4.3.0",
"styled-components": "^4.2.0", "styled-components": "^4.2.0",
"uuid": "^7.0.3" "uuid": "^7.0.3",
"prosemirror-model": "^1.9.1",
"wax-prosemirror-core": "^0.0.10",
"wax-prosemirror-utilities": "^0.0.10"
} }
} }
import { Mark } from "prosemirror-model"; import { Mark } from 'prosemirror-model';
import React, { Fragment } from "react"; import React from 'react';
import CommentBox from "../comments/CommentBox"; import CommentBox from '../comments/CommentBox';
import TrackChangeBox from "../trackChanges/TrackChangeBox"; import TrackChangeBox from '../trackChanges/TrackChangeBox';
export default ({ commentsTracks, view, position }) => { export default ({ commentsTracks, view, position }) => {
return ( return (
<Fragment> <>
{commentsTracks.map((commentTrack, index) => { {commentsTracks.map((commentTrack, index) => {
const id = const id =
commentTrack instanceof Mark commentTrack instanceof Mark
...@@ -14,7 +14,7 @@ export default ({ commentsTracks, view, position }) => { ...@@ -14,7 +14,7 @@ export default ({ commentsTracks, view, position }) => {
const top = position[index] ? position[index][id] : 0; const top = position[index] ? position[index][id] : 0;
if (commentTrack.type && commentTrack.type.name === "comment") { if (commentTrack.type && commentTrack.type.name === 'comment') {
return ( return (
<CommentBox <CommentBox
key={id} key={id}
...@@ -24,18 +24,17 @@ export default ({ commentsTracks, view, position }) => { ...@@ -24,18 +24,17 @@ export default ({ commentsTracks, view, position }) => {
dataBox={id} dataBox={id}
/> />
); );
} else {
return (
<TrackChangeBox
key={id}
trackChange={commentTrack}
view={view}
top={top}
dataBox={id}
/>
);
} }
return (
<TrackChangeBox
key={id}
trackChange={commentTrack}
view={view}
top={top}
dataBox={id}
/>
);
})} })}
</Fragment> </>
); );
}; };
import { Mark } from "prosemirror-model"; import { Mark } from 'prosemirror-model';
import React, { import React, {
useContext, useContext,
useState, useState,
useEffect, useEffect,
useMemo, useMemo,
Fragment, useCallback,
useCallback } from 'react';
} from "react"; import { each, uniqBy, sortBy } from 'lodash';
import styled from "styled-components"; import { WaxContext } from 'wax-prosemirror-core';
import { WaxContext } from "wax-prosemirror-core"; import { DocumentHelpers } from 'wax-prosemirror-utilities';
import { DocumentHelpers } from "wax-prosemirror-utilities"; import BoxList from './BoxList';
import BoxList from "./BoxList";
import { each, uniqBy, sortBy } from "lodash";
export default ({ area }) => { export default ({ area }) => {
const { view: { main }, app, activeView } = useContext(WaxContext); const {
const commentPlugin = app.PmPlugins.get("commentPlugin"); view: { main },
app,
activeView,
} = useContext(WaxContext);
const commentPlugin = app.PmPlugins.get('commentPlugin');
const [marksNodes, setMarksNodes] = useState([]); const [marksNodes, setMarksNodes] = useState([]);
const [position, setPosition] = useState(); const [position, setPosition] = useState();
...@@ -37,18 +39,18 @@ export default ({ area }) => { ...@@ -37,18 +39,18 @@ export default ({ area }) => {
let isActive = false; let isActive = false;
if (activeComment && id === activeComment.attrs.id) isActive = true; if (activeComment && id === activeComment.attrs.id) isActive = true;
//annotation top // annotation top
if (area === "main") { if (area === 'main') {
markNodeEl = document.querySelector(`[data-id="${id}"]`); markNodeEl = document.querySelector(`[data-id="${id}"]`);
if (markNodeEl) if (markNodeEl)
annotationTop = annotationTop =
markNodeEl.getBoundingClientRect().top - WaxSurface.top; markNodeEl.getBoundingClientRect().top - WaxSurface.top;
} else { } else {
const panelWrapper = document.getElementsByClassName("panelWrapper"); const panelWrapper = document.getElementsByClassName('panelWrapper');
const panelWrapperHeight = panelWrapper[0].getBoundingClientRect() const panelWrapperHeight = panelWrapper[0].getBoundingClientRect()
.height; .height;
markNodeEl = document markNodeEl = document
.querySelector("#notes-container") .querySelector('#notes-container')
.querySelector(`[data-id="${id}"]`); .querySelector(`[data-id="${id}"]`);
if (markNodeEl) if (markNodeEl)
annotationTop = annotationTop =
...@@ -57,7 +59,7 @@ export default ({ area }) => { ...@@ -57,7 +59,7 @@ export default ({ area }) => {
// get height of this markNode box // get height of this markNode box
const boxEl = document.querySelector(`div[data-box="${id}"]`); const boxEl = document.querySelector(`div[data-box="${id}"]`);
if (boxEl) boxHeight = parseInt(boxEl.offsetHeight); if (boxEl) boxHeight = parseInt(boxEl.offsetHeight, 10);
// where the box should move to // where the box should move to
top = annotationTop; top = annotationTop;
...@@ -115,14 +117,10 @@ export default ({ area }) => { ...@@ -115,14 +117,10 @@ export default ({ area }) => {
return allCommentsTop; return allCommentsTop;
}); });
useEffect( useEffect(() => {
() => { setMarksNodes(updateMarks(main));
setMarksNodes(updateMarks(main)); setPosition(setTops());
setPosition(setTops()); }, [JSON.stringify(updateMarks(main)), JSON.stringify(setTops())]);
},
[JSON.stringify(updateMarks(main)), JSON.stringify(setTops())]
);
const CommentTrackComponent = useMemo( const CommentTrackComponent = useMemo(
() => ( () => (
...@@ -133,9 +131,9 @@ export default ({ area }) => { ...@@ -133,9 +131,9 @@ export default ({ area }) => {
position={position} position={position}
/> />
), ),
[marksNodes[area] || [], position] [marksNodes[area] || [], position],
); );
return <Fragment>{CommentTrackComponent}</Fragment>; return <>{CommentTrackComponent}</>;
}; };
const updateMarks = view => { const updateMarks = view => {
...@@ -149,10 +147,10 @@ const updateMarks = view => { ...@@ -149,10 +147,10 @@ const updateMarks = view => {
if (node.node.marks.length > 0) { if (node.node.marks.length > 0) {
node.node.marks.filter(mark => { node.node.marks.filter(mark => {
if ( if (
mark.type.name === "comment" || mark.type.name === 'comment' ||
mark.type.name === "insertion" || mark.type.name === 'insertion' ||
mark.type.name === "deletion" || mark.type.name === 'deletion' ||
mark.type.name === "format_change" mark.type.name === 'format_change'
) { ) {
mark.pos = node.pos; mark.pos = node.pos;
finalMarks.push(mark); finalMarks.push(mark);
...@@ -167,11 +165,11 @@ const updateMarks = view => { ...@@ -167,11 +165,11 @@ const updateMarks = view => {
} }
}); });
const nodesAndMarks = [...uniqBy(finalMarks, "attrs.id"), ...finalNodes]; const nodesAndMarks = [...uniqBy(finalMarks, 'attrs.id'), ...finalNodes];
const groupedMarkNodes = {}; const groupedMarkNodes = {};
sortBy(nodesAndMarks, ["pos"]).forEach(markNode => { sortBy(nodesAndMarks, ['pos']).forEach(markNode => {
const markNodeAttrs = markNode.attrs const markNodeAttrs = markNode.attrs
? markNode.attrs ? markNode.attrs
: markNode.node.attrs; : markNode.node.attrs;
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment