diff --git a/wax-prosemirror-services/src/CommentsService/CommentsService.js b/wax-prosemirror-services/src/CommentsService/CommentsService.js index 7436856419d66908ae5390b076f1096a4cc285b3..ea97c9596c21423f29a83907e3d6737ec8f988ff 100644 --- a/wax-prosemirror-services/src/CommentsService/CommentsService.js +++ b/wax-prosemirror-services/src/CommentsService/CommentsService.js @@ -48,7 +48,7 @@ export default class CommentsService extends Service { this.allCommentsFromStates = this.allCommentsFromStates.concat([ ...items, ]); - commentsConfig.getComments(this.allCommentsFromStates); + if (this.app.context.options.resolvedComment) { this.allCommentsFromStates = this.allCommentsFromStates.filter( comm => { @@ -56,6 +56,7 @@ export default class CommentsService extends Service { }, ); } + commentsConfig.getComments(this.allCommentsFromStates); this.app.context.setOption({ comments: this.allCommentsFromStates }); }, }; diff --git a/wax-prosemirror-services/src/CommentsService/components/RightArea.js b/wax-prosemirror-services/src/CommentsService/components/RightArea.js index 8ce766e6ad1e974fe84813d518f9e3d6cd52c6bd..9235252460aa325ddb6d1ba3fce600e4ff350851 100644 --- a/wax-prosemirror-services/src/CommentsService/components/RightArea.js +++ b/wax-prosemirror-services/src/CommentsService/components/RightArea.js @@ -5,6 +5,7 @@ import useDeepCompareEffect from 'use-deep-compare-effect'; import { each, uniqBy, sortBy, groupBy } from 'lodash'; import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core'; import BoxList from './BoxList'; +import { CommentDecorationPluginKey } from '../plugins/CommentDecorationPlugin'; export default ({ area, users }) => { const context = useContext(WaxContext); @@ -80,12 +81,22 @@ export default ({ area, users }) => { WaxSurface.top + parseInt(WaxSurfaceMarginTop.slice(0, -2), 10); } else { - // comment is deleted + // comment is deleted from editing surface + context.setOption({ resolvedComment: id }); context.setOption({ comments: comments.filter(comment => { return comment.id !== id; }), }); + + setTimeout(() => { + activeView.dispatch( + activeView.state.tr.setMeta(CommentDecorationPluginKey, { + type: 'deleteComment', + id, + }), + ); + }); } } else { // Notes