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 d26722e90ec0ea807af00d0bb8360a2930ac6440..8d77d716b6b665f66ee75d409bbbce2799a663c8 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 0000000000000000000000000000000000000000..b10ec56559f28a2ad75a482211859554f1626cfc --- /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 947e8477f5dcef24a248df1d522d61e1e8aa7c2d..ca55033de74e5d49d108765cdfeb686a43403d6c 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, + }); } }