Skip to content
Snippets Groups Projects
Commit 53eaa1e2 authored by chris's avatar chris
Browse files

fix comment count

parent e94808c8
No related branches found
No related tags found
1 merge request!234Search replace
......@@ -196,38 +196,6 @@ const getNotes = main => {
return notes;
};
const getCommentsTracks = main => {
const marks = DocumentHelpers.findInlineNodes(main.state.doc);
const commentsTracks = [];
marks.map(node => {
if (node.node.marks.length > 0) {
node.node.marks.filter(mark => {
if (
mark.type.name === 'comment' ||
mark.type.name === 'insertion' ||
mark.type.name === 'deletion' ||
mark.type.name === 'format_change'
) {
mark.pos = node.pos;
commentsTracks.push(mark);
}
});
}
});
return commentsTracks;
};
const getTrackBlockNodes = main => {
const allBlockNodes = DocumentHelpers.findBlockNodes(main.state.doc);
const trackBlockNodes = [];
allBlockNodes.map(node => {
if (node.node.attrs.track && node.node.attrs.track.length > 0) {
trackBlockNodes.push(node);
}
});
return trackBlockNodes;
};
const LeftSideBar = ComponentPlugin('leftSideBar');
const MainMenuToolBar = ComponentPlugin('mainMenuToolBar');
const NotesArea = ComponentPlugin('notesArea');
......@@ -258,8 +226,10 @@ const EditoriaLayout = ({ editor }) => {
};
}
const notes = main && getNotes(main);
const commentsTracks = main && getCommentsTracks(main).length;
const trackBlockNodes = main && getTrackBlockNodes(main).length;
const commentsTracksCount =
main && DocumentHelpers.getCommentsTracksCount(main);
const trackBlockNodesCount =
main && DocumentHelpers.getTrackBlockNodesCount(main);
const areNotes = notes && !!notes.length && notes.length > 0;
......@@ -302,7 +272,7 @@ const EditoriaLayout = ({ editor }) => {
<CommentsContainer>
<CommentTrackToolsContainer>
<CommentTrackTools>
{commentsTracks + trackBlockNodes} COMMENTS AND
{commentsTracksCount + trackBlockNodesCount} COMMENTS AND
SUGGESTIONS
<CommentTrackOptions>
<CommentTrackToolBar />
......
......@@ -163,12 +163,22 @@ const getTrackBlockNodes = main => {
};
const getComments = main => {
const comments = DocumentHelpers.findChildrenByMark(
const comments = [];
const commentsNodes = DocumentHelpers.findChildrenByMark(
main.state.doc,
main.state.schema.marks.comment,
true,
);
return comments;
commentsNodes.map(node => {
if (node.node.marks.length > 0) {
node.node.marks.filter(mark => {
if (mark.type.name === 'comment') {
comments.push(mark);
}
});
}
});
return [...new Set(comments.map(item => item.attrs.id))];
};
const TrackChangeOptionsComponent = ({
......
import { isObject } from 'lodash';
const findMark = (state, PMmark, toArr = false) => {
const {
selection: { $from, $to },
......@@ -27,6 +25,43 @@ const findMark = (state, PMmark, toArr = false) => {
return markFound;
};
const getCommentsTracksCount = main => {
const marks = findInlineNodes(main.state.doc);
const commentsTracksFormat = [];
const insertionsDeletions = [];
marks.map(node => {
if (node.node.marks.length > 0) {
node.node.marks.filter(mark => {
if (
mark.type.name === 'comment' ||
mark.type.name === 'format_change'
) {
commentsTracksFormat.push(mark);
} else if (
mark.type.name === 'insertion' ||
mark.type.name === 'deletion'
) {
insertionsDeletions.push(mark);
}
});
}
});
const unique = [...new Set(commentsTracksFormat.map(item => item.attrs.id))];
const total = unique.length + insertionsDeletions.length;
return total;
};
const getTrackBlockNodesCount = main => {
const allBlockNodes = findBlockNodes(main.state.doc);
const trackBlockNodes = [];
allBlockNodes.map(node => {
if (node.node.attrs.track && node.node.attrs.track.length > 0) {
trackBlockNodes.push(node);
}
});
return trackBlockNodes.length;
};
/* TODO */
/* this is a hacky workaround for now to find marks
that are pm will break them. Correct way is to be done
......@@ -172,4 +207,6 @@ export default {
findFragmentedMark,
findAllMarksWithSameId,
findMarkPosition,
getCommentsTracksCount,
getTrackBlockNodesCount,
};
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