From b1794b21709349c393881682a1414ffa2367b325 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Wed, 6 Mar 2024 20:03:06 +0200 Subject: [PATCH] set active comment --- .../src/CommentsService/comments.css | 2 +- .../components/ConnectedComment.js | 3 +- .../CommentsService/components/RightArea.js | 1 + .../CommentsService/plugins/CommentPlugin.js | 31 +++++++++++-------- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/wax-prosemirror-services/src/CommentsService/comments.css b/wax-prosemirror-services/src/CommentsService/comments.css index 3f7045dfc..1cd4d219d 100644 --- a/wax-prosemirror-services/src/CommentsService/comments.css +++ b/wax-prosemirror-services/src/CommentsService/comments.css @@ -5,7 +5,7 @@ border-radius: 3px 3px 0 0; } - span.comment .active-comment { +.active-comment { background-color: gold; /* color: black; */ } \ No newline at end of file diff --git a/wax-prosemirror-services/src/CommentsService/components/ConnectedComment.js b/wax-prosemirror-services/src/CommentsService/components/ConnectedComment.js index 4ce07f55b..bf6176471 100644 --- a/wax-prosemirror-services/src/CommentsService/components/ConnectedComment.js +++ b/wax-prosemirror-services/src/CommentsService/components/ConnectedComment.js @@ -33,6 +33,7 @@ export default ({ comment, top, commentId, recalculateTops, users }) => { app, activeView, activeViewId, + options: { comments }, } = context; const [isActive, setIsActive] = useState(false); @@ -164,7 +165,7 @@ export default ({ comment, top, commentId, recalculateTops, users }) => { // } setTimeout(() => { if (conversation.length === 0 && !clickPost) { - onClickResolve(); + // onClickResolve(); activeView.focus(); } }, 400); diff --git a/wax-prosemirror-services/src/CommentsService/components/RightArea.js b/wax-prosemirror-services/src/CommentsService/components/RightArea.js index fe6f5a473..5b498bb8b 100644 --- a/wax-prosemirror-services/src/CommentsService/components/RightArea.js +++ b/wax-prosemirror-services/src/CommentsService/components/RightArea.js @@ -52,6 +52,7 @@ export default ({ area, users }) => { let activeTrackChange = null; const activeComment = commentPlugin.getState(activeView.state).comment; + if (trakChangePlugin) activeTrackChange = trakChangePlugin.getState(activeView.state) .trackChange; diff --git a/wax-prosemirror-services/src/CommentsService/plugins/CommentPlugin.js b/wax-prosemirror-services/src/CommentsService/plugins/CommentPlugin.js index 2102d57e1..6f086aeff 100644 --- a/wax-prosemirror-services/src/CommentsService/plugins/CommentPlugin.js +++ b/wax-prosemirror-services/src/CommentsService/plugins/CommentPlugin.js @@ -1,9 +1,7 @@ -/* eslint-disable */ - -import { minBy, maxBy, last } from 'lodash'; +/* eslint-disable consistent-return */ +import { inRange, sortBy, last } from 'lodash'; import { Plugin, PluginKey } from 'prosemirror-state'; import { Decoration, DecorationSet } from 'prosemirror-view'; -import { DocumentHelpers } from 'wax-prosemirror-core'; const commentPlugin = new PluginKey('commentPlugin'); @@ -12,18 +10,25 @@ const getComment = (state, context) => { options: { comments }, } = context; if (!comments?.length) return; - console.log('sds', comments); - return { - from: comments[0].from, - to: comments[0].to, - attrs: comments[0].data, - id: comments[0].id, - // contained: commentOnSelection.contained, - }; + let commentData = comments.filter(comment => + inRange(state.selection.from, comment.from, comment.to), + ); + + commentData = sortBy(commentData, ['from']); + + if (commentData.length > 0) { + return { + from: last(commentData).from, + to: last(commentData).to, + attrs: last(commentData).data, + id: last(commentData).id, + // contained: commentOnSelection.contained, + }; + } + return {}; }; -c; export default (key, context) => { return new Plugin({ key: commentPlugin, -- GitLab