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 => { ...@@ -196,38 +196,6 @@ const getNotes = main => {
return notes; 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 LeftSideBar = ComponentPlugin('leftSideBar');
const MainMenuToolBar = ComponentPlugin('mainMenuToolBar'); const MainMenuToolBar = ComponentPlugin('mainMenuToolBar');
const NotesArea = ComponentPlugin('notesArea'); const NotesArea = ComponentPlugin('notesArea');
...@@ -258,8 +226,10 @@ const EditoriaLayout = ({ editor }) => { ...@@ -258,8 +226,10 @@ const EditoriaLayout = ({ editor }) => {
}; };
} }
const notes = main && getNotes(main); const notes = main && getNotes(main);
const commentsTracks = main && getCommentsTracks(main).length; const commentsTracksCount =
const trackBlockNodes = main && getTrackBlockNodes(main).length; main && DocumentHelpers.getCommentsTracksCount(main);
const trackBlockNodesCount =
main && DocumentHelpers.getTrackBlockNodesCount(main);
const areNotes = notes && !!notes.length && notes.length > 0; const areNotes = notes && !!notes.length && notes.length > 0;
...@@ -302,7 +272,7 @@ const EditoriaLayout = ({ editor }) => { ...@@ -302,7 +272,7 @@ const EditoriaLayout = ({ editor }) => {
<CommentsContainer> <CommentsContainer>
<CommentTrackToolsContainer> <CommentTrackToolsContainer>
<CommentTrackTools> <CommentTrackTools>
{commentsTracks + trackBlockNodes} COMMENTS AND {commentsTracksCount + trackBlockNodesCount} COMMENTS AND
SUGGESTIONS SUGGESTIONS
<CommentTrackOptions> <CommentTrackOptions>
<CommentTrackToolBar /> <CommentTrackToolBar />
......
...@@ -163,12 +163,22 @@ const getTrackBlockNodes = main => { ...@@ -163,12 +163,22 @@ const getTrackBlockNodes = main => {
}; };
const getComments = main => { const getComments = main => {
const comments = DocumentHelpers.findChildrenByMark( const comments = [];
const commentsNodes = DocumentHelpers.findChildrenByMark(
main.state.doc, main.state.doc,
main.state.schema.marks.comment, main.state.schema.marks.comment,
true, 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 = ({ const TrackChangeOptionsComponent = ({
......
import { isObject } from 'lodash';
const findMark = (state, PMmark, toArr = false) => { const findMark = (state, PMmark, toArr = false) => {
const { const {
selection: { $from, $to }, selection: { $from, $to },
...@@ -27,6 +25,43 @@ const findMark = (state, PMmark, toArr = false) => { ...@@ -27,6 +25,43 @@ const findMark = (state, PMmark, toArr = false) => {
return markFound; 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 */ /* TODO */
/* this is a hacky workaround for now to find marks /* this is a hacky workaround for now to find marks
that are pm will break them. Correct way is to be done that are pm will break them. Correct way is to be done
...@@ -172,4 +207,6 @@ export default { ...@@ -172,4 +207,6 @@ export default {
findFragmentedMark, findFragmentedMark,
findAllMarksWithSameId, findAllMarksWithSameId,
findMarkPosition, 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