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