From 08fcc13f196d1df3b4a3786bcb8c6a76171318c4 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Sat, 26 Sep 2020 17:00:28 +0300
Subject: [PATCH] comments on notes fix

---
 .../src/components/rightArea/RightArea.js                | 9 ++++++---
 .../src/NoteService/NoteComponent.js                     | 9 ++++++---
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/wax-prosemirror-components/src/components/rightArea/RightArea.js b/wax-prosemirror-components/src/components/rightArea/RightArea.js
index d6e890e42..6e8935476 100644
--- a/wax-prosemirror-components/src/components/rightArea/RightArea.js
+++ b/wax-prosemirror-components/src/components/rightArea/RightArea.js
@@ -16,6 +16,7 @@ export default ({ area }) => {
   } = useContext(WaxContext);
   const commentPlugin = app.PmPlugins.get('commentPlugin');
   const [marksNodes, setMarksNodes] = useState([]);
+
   const [position, setPosition] = useState();
   const [isFirstRun, setFirstRun] = useState(true);
 
@@ -63,12 +64,15 @@ export default ({ area }) => {
             markNodeEl.getBoundingClientRect().top - panelWrapperHeight - 50;
       }
 
+      let boxEl = null;
       // get height of this markNode box
-      const boxEl = document.querySelector(`div[data-box="${id}"]`);
+      if (markNodeEl) {
+        boxEl = document.querySelector(`div[data-box="${id}"]`);
+      }
       if (boxEl) boxHeight = parseInt(boxEl.offsetHeight, 10);
 
       // where the box should move to
-      top = annotationTop;
+      top = boxEl ? annotationTop : -2000;
 
       // if the above comment box has already taken up the height, move down
       if (pos > 0) {
@@ -156,7 +160,6 @@ export default ({ area }) => {
   return <>{CommentTrackComponent}</>;
 };
 
-//  TODO if allInlineNodes and allBlockNodes count don't change, do not compute again
 const updateMarks = view => {
   if (view.main) {
     const allInlineNodes = [];
diff --git a/wax-prosemirror-services/src/NoteService/NoteComponent.js b/wax-prosemirror-services/src/NoteService/NoteComponent.js
index 1e4b0d036..a24fd02d3 100644
--- a/wax-prosemirror-services/src/NoteService/NoteComponent.js
+++ b/wax-prosemirror-services/src/NoteService/NoteComponent.js
@@ -1,6 +1,6 @@
 import React, { useContext, useState, useMemo } from 'react';
 import useDeepCompareEffect from 'use-deep-compare-effect';
-
+import { differenceBy } from 'lodash';
 import { WaxContext } from 'wax-prosemirror-core';
 import { DocumentHelpers } from 'wax-prosemirror-utilities';
 import NoteEditor from './NoteEditor';
@@ -22,14 +22,17 @@ export default () => {
       );
       if (notes.length > currentNotes.length) {
         // TODO remove from context views that no loger exist
-        // console.log('to do cleanup');
+        const difference = differenceBy(notes, currentNotes, 'node.attrs.id');
+        difference.forEach((item, i) => {
+          // delete view[item.node.attrs.id];
+        });
       }
     }
   };
 
   useDeepCompareEffect(() => {
     setNotes(updateNotes(main));
-    cleanUpNoteViews();
+    // cleanUpNoteViews();
   }, [updateNotes(main)]);
 
   const noteComponent = useMemo(
-- 
GitLab