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