From dfb79a957398fe44cec61efeb290bb65b817f67a Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Tue, 6 Apr 2021 20:25:40 +0300
Subject: [PATCH] simple node view

---
 editors/demo/src/HHMI/HHMI.js                 | 10 +---------
 .../components/TestComponent.js               | 20 ++++++++-----------
 wax-prosemirror-core/src/WaxView.js           | 17 ++++++++++++++--
 3 files changed, 24 insertions(+), 23 deletions(-)

diff --git a/editors/demo/src/HHMI/HHMI.js b/editors/demo/src/HHMI/HHMI.js
index cc91c503d..ad2847a94 100644
--- a/editors/demo/src/HHMI/HHMI.js
+++ b/editors/demo/src/HHMI/HHMI.js
@@ -40,17 +40,9 @@ const Hhmi = () => {
         fileUpload={file => renderImage(file)}
         value=""
         targetFormat="JSON"
-        nodeViews={[
-          {
-            multiple_choice: {
-              node: 'multiple_choice',
-              component: TestComponent,
-            },
-          },
-        ]}
         // readonly
         layout={HhmiLayout}
-        // onChange={source => console.log(source)}
+        onChange={source => console.log(source)}
       />
     </>
   );
diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/TestComponent.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/TestComponent.js
index 3172886ae..a8e0df88a 100644
--- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/TestComponent.js
+++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/TestComponent.js
@@ -53,16 +53,12 @@ export default () => {
     [state, handleChange],
   );
 
-  useEffect(() => {
-    const editorViewDOM = editorViewRef.current;
-    if (editorViewDOM) {
-      createEditorView(editorViewDOM);
-    }
-  }, [createEditorView]);
-  console.log(editorViewRef);
-  return (
-    <div>
-      <div ref={editorViewRef}></div>
-    </div>
-  );
+  // useEffect(() => {
+  //   const editorViewDOM = editorViewRef.current;
+  //   if (editorViewDOM) {
+  //     createEditorView(editorViewDOM);
+  //   }
+  // }, [createEditorView]);
+
+  return <div style={styles}></div>;
 };
diff --git a/wax-prosemirror-core/src/WaxView.js b/wax-prosemirror-core/src/WaxView.js
index 1cb8c2e9d..98de7cb1c 100644
--- a/wax-prosemirror-core/src/WaxView.js
+++ b/wax-prosemirror-core/src/WaxView.js
@@ -10,6 +10,7 @@ import { trackedTransaction } from 'wax-prosemirror-services';
 import { WaxContext, useReactNodeViewPortals } from './WaxContext';
 import transformPasted from './helpers/TransformPasted';
 import { createReactNodeView } from './ReactNodeView';
+import TestComponent from '../../editors/demo/src/HHMI/MultipleChoiceQuestionService/components/TestComponent';
 
 let previousDoc;
 
@@ -48,7 +49,19 @@ export default props => {
             user,
             scrollMargin: 200,
             scrollThreshold: 200,
-            nodeViews: createNodeVies(),
+            nodeViews: {
+              multiple_choice(node, view, getPos, decorations) {
+                console.log('rerenders for ever', node);
+                return createReactNodeView({
+                  node,
+                  view,
+                  getPos,
+                  decorations,
+                  component: TestComponent,
+                  onCreatePortal: handleCreatePortal,
+                });
+              },
+            },
             handleDOMEvents: {
               blur: onBlur
                 ? view => {
@@ -88,7 +101,7 @@ export default props => {
     const test = nodeViews.map((nodeView, key, index) => {
       return {
         [nodeView.multiple_choice.node](node, view, getPos, decorations) {
-          console.log('rerenders for ever');
+          console.log('rerenders for ever', node);
           return createReactNodeView({
             node,
             view,
-- 
GitLab