From 847d3b326c6b95cb966f70f3013b8c6d091affc8 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Thu, 23 Nov 2023 06:05:41 +0200 Subject: [PATCH] fix comment on note creation --- .../src/utilities/commands/Commands.js | 44 ++++++++++++++----- .../components/ConnectedComment.js | 41 +++++++++-------- 2 files changed, 57 insertions(+), 28 deletions(-) diff --git a/wax-prosemirror-core/src/utilities/commands/Commands.js b/wax-prosemirror-core/src/utilities/commands/Commands.js index 64d144872..e9cf82a1b 100644 --- a/wax-prosemirror-core/src/utilities/commands/Commands.js +++ b/wax-prosemirror-core/src/utilities/commands/Commands.js @@ -128,7 +128,7 @@ const isOnSameTextBlock = state => { return false; }; -const createComment = (state, dispatch, group, viewid) => { +const createComment = (state, dispatch, group, viewid, conversation = []) => { const { selection: { $from, $to }, tr, @@ -147,20 +147,38 @@ const createComment = (state, dispatch, group, viewid) => { footnoteNode.content.size + 2 === state.selection.to - state.selection.from ) { - return createCommentOnSingleFootnote(state, dispatch, group, viewid); + return createCommentOnSingleFootnote( + state, + dispatch, + group, + viewid, + conversation, + ); } - return createCommentOnFootnote(state, dispatch, group, viewid); + return createCommentOnFootnote( + state, + dispatch, + group, + viewid, + conversation, + ); } toggleMark(state.config.schema.marks.comment, { id: uuidv4(), group, - conversation: [], + conversation, viewid, })(state, dispatch); }; -const createCommentOnSingleFootnote = (state, dispatch, group, viewid) => { +const createCommentOnSingleFootnote = ( + state, + dispatch, + group, + viewid, + conversation, +) => { const { tr } = state; tr.step( new AddMarkStep( @@ -169,15 +187,21 @@ const createCommentOnSingleFootnote = (state, dispatch, group, viewid) => { state.config.schema.marks.comment.create({ id: uuidv4(), group, - conversation: [], + conversation, viewid, }), ), - ); + ).setMeta('forceUpdate', true); dispatch(tr); }; -const createCommentOnFootnote = (state, dispatch, group, viewid) => { +const createCommentOnFootnote = ( + state, + dispatch, + group, + viewid, + conversation, +) => { const { selection: { $from }, selection, @@ -231,11 +255,11 @@ const createCommentOnFootnote = (state, dispatch, group, viewid) => { state.config.schema.marks.comment.create({ id, group, - conversation: [], + conversation, viewid, }), ), - ); + ).setMeta('forceUpdate', true); }); dispatch(tr); diff --git a/wax-prosemirror-services/src/CommentsService/components/ConnectedComment.js b/wax-prosemirror-services/src/CommentsService/components/ConnectedComment.js index bc7501c2a..76fc7096e 100644 --- a/wax-prosemirror-services/src/CommentsService/components/ConnectedComment.js +++ b/wax-prosemirror-services/src/CommentsService/components/ConnectedComment.js @@ -4,7 +4,7 @@ import React, { useContext, useMemo, useState, useEffect } from 'react'; import { TextSelection } from 'prosemirror-state'; import { last, maxBy } from 'lodash'; import styled from 'styled-components'; -import { WaxContext, DocumentHelpers } from 'wax-prosemirror-core'; +import { WaxContext, DocumentHelpers, Commands } from 'wax-prosemirror-core'; import { v4 as uuidv4 } from 'uuid'; import { override } from '@pubsweet/ui-toolkit'; import CommentBox from './ui/comments/CommentBox'; @@ -48,7 +48,6 @@ export default ({ comment, top, commentId, recalculateTops }) => { comment, ); } - const commentMark = state.schema.marks.comment; const styles = { @@ -92,23 +91,29 @@ export default ({ comment, top, commentId, recalculateTops }) => { commentMark, ), ); - - activeView.dispatch( - activeView.state.tr - .addMark( - singleComment.pos, - singleComment.pos + singleComment.node.nodeSize, - commentMark.create({ - id, - group: comment.attrs.group, - viewid: comment.attrs.viewid, - conversation: comment.attrs.conversation, - title: comment.attrs.title, - }), - ) - .setMeta('forceUpdate', true), - ); + // activeView.dispatch( + // activeView.state.tr + // .addMark( + // singleComment.pos, + // singleComment.pos + singleComment.node.nodeSize, + // commentMark.create({ + // id, + // group: comment.attrs.group, + // viewid: comment.attrs.viewid, + // conversation: comment.attrs.conversation, + // title: comment.attrs.title, + // }), + // ) + // .setMeta('forceUpdate', true), + // ); }); + Commands.createComment( + activeView.state, + activeView.dispatch, + comment.attrs.group, + comment.attrs.viewid, + comment.attrs.conversation, + ); activeView.focus(); recalculateTops(); }; -- GitLab