From 3e12202692f34e1247fbab38bde0a3ef76b5daa8 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Wed, 12 Jan 2022 11:00:39 +0200
Subject: [PATCH] add nodeviews

---
 ...ssayNodeView.js => EssayAnswerNodeView.js} |  2 +-
 .../src/EssayService/EssayQuestionNodeView.js | 37 +++++++++++++++++++
 .../src/EssayService/EssayService.js          | 12 +++++-
 3 files changed, 48 insertions(+), 3 deletions(-)
 rename wax-prosemirror-services/src/EssayService/{EssayNodeView.js => EssayAnswerNodeView.js} (91%)
 create mode 100644 wax-prosemirror-services/src/EssayService/EssayQuestionNodeView.js

diff --git a/wax-prosemirror-services/src/EssayService/EssayNodeView.js b/wax-prosemirror-services/src/EssayService/EssayAnswerNodeView.js
similarity index 91%
rename from wax-prosemirror-services/src/EssayService/EssayNodeView.js
rename to wax-prosemirror-services/src/EssayService/EssayAnswerNodeView.js
index d26722e90..8d77d716b 100644
--- a/wax-prosemirror-services/src/EssayService/EssayNodeView.js
+++ b/wax-prosemirror-services/src/EssayService/EssayAnswerNodeView.js
@@ -1,6 +1,6 @@
 import AbstractNodeView from '../PortalService/AbstractNodeView';
 
-export default class EssayNodeView extends AbstractNodeView {
+export default class EssayAnswerNodeView extends AbstractNodeView {
   constructor(
     node,
     view,
diff --git a/wax-prosemirror-services/src/EssayService/EssayQuestionNodeView.js b/wax-prosemirror-services/src/EssayService/EssayQuestionNodeView.js
new file mode 100644
index 000000000..b10ec5655
--- /dev/null
+++ b/wax-prosemirror-services/src/EssayService/EssayQuestionNodeView.js
@@ -0,0 +1,37 @@
+import AbstractNodeView from '../PortalService/AbstractNodeView';
+
+export default class EssayQuestionNodeView extends AbstractNodeView {
+  constructor(
+    node,
+    view,
+    getPos,
+    decorations,
+    createPortal,
+    Component,
+    context,
+  ) {
+    super(node, view, getPos, decorations, createPortal, Component, context);
+
+    this.node = node;
+    this.outerView = view;
+    this.getPos = getPos;
+    this.context = context;
+  }
+
+  static name() {
+    return 'essay';
+  }
+
+  update(node) {
+    return true;
+  }
+
+  stopEvent(event) {
+    console.log(event.target.type);
+    if (event.target.type === 'textarea') {
+      return true;
+    }
+    const innerView = this.context.view[this.node.attrs.id];
+    return innerView && innerView.dom.contains(event.target);
+  }
+}
diff --git a/wax-prosemirror-services/src/EssayService/EssayService.js b/wax-prosemirror-services/src/EssayService/EssayService.js
index 947e8477f..ca55033de 100644
--- a/wax-prosemirror-services/src/EssayService/EssayService.js
+++ b/wax-prosemirror-services/src/EssayService/EssayService.js
@@ -4,7 +4,9 @@ import essayContainerNode from './schema/essayContainerNode';
 import essayQuestionNode from './schema/essayQuestionNode';
 import essayAnswerNode from './schema/essayAnswerNode';
 import EssayQuestionComponent from './components/EssayQuestionComponent';
-import EssayNodeView from './EssayNodeView';
+import EssayAnswerComponent from './components/EssayAnswerComponent';
+import EssayQuestionNodeView from './EssayQuestionNodeView';
+import EssayAnswerNodeView from './EssayAnswerNodeView';
 
 class EssayService extends Service {
   register() {
@@ -25,10 +27,16 @@ class EssayService extends Service {
     });
 
     addPortal({
-      nodeView: EssayNodeView,
+      nodeView: EssayQuestionNodeView,
       component: EssayQuestionComponent,
       context: this.app,
     });
+
+    addPortal({
+      nodeView: EssayAnswerNodeView,
+      component: EssayAnswerComponent,
+      context: this.app,
+    });
   }
 }
 
-- 
GitLab