From 0889fd17ec00239a2484be232a7f35da1ebdf65c Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Tue, 4 Jan 2022 16:42:34 +0200
Subject: [PATCH] fix schema

---
 editors/demo/src/Editors.js                   |  2 +-
 .../components/QuestionEditorComponent.js     | 22 +++++++++++--------
 .../schema/multipleChoiceContainerNode.js     |  2 +-
 3 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/editors/demo/src/Editors.js b/editors/demo/src/Editors.js
index abd0628fb..d19991a2e 100644
--- a/editors/demo/src/Editors.js
+++ b/editors/demo/src/Editors.js
@@ -70,7 +70,7 @@ const Editors = () => {
       case 'ncbi':
         return <NCBI />;
       default:
-        return <Editoria />;
+        return <HHMI />;
     }
   };
 
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js
index 60d1bce45..6f4763aec 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js
@@ -115,12 +115,14 @@ const QuestionEditorComponent = ({ node, view, getPos }) => {
           mousedown: () => {
             context.updateView({}, questionId);
             context.view[context.activeViewId].dispatch(
-              context.view[context.activeViewId].state.tr.setSelection(
-                TextSelection.between(
-                  context.view[context.activeViewId].state.selection.$anchor,
-                  context.view[context.activeViewId].state.selection.$head,
+              context.view[context.activeViewId].state.tr
+                .setMeta('outsideView', questionId)
+                .setSelection(
+                  TextSelection.between(
+                    context.view[context.activeViewId].state.selection.$anchor,
+                    context.view[context.activeViewId].state.selection.$head,
+                  ),
                 ),
-              ),
             );
 
             // Kludge to prevent issues due to the fact that the whole
@@ -147,20 +149,22 @@ const QuestionEditorComponent = ({ node, view, getPos }) => {
   }, []);
 
   const dispatchTransaction = tr => {
+    context.updateView({}, questionId);
+    const outerTr = context.view.main.state.tr;
+    context.view.main.dispatch(outerTr.setMeta('outsideView', questionId));
     const { state, transactions } = questionView.state.applyTransaction(tr);
     questionView.updateState(state);
-    context.updateView({}, questionId);
 
     if (!tr.getMeta('fromOutside')) {
-      const outerTr = view.state.tr;
       const offsetMap = StepMap.offset(getPos() + 1);
       for (let i = 0; i < transactions.length; i++) {
         const { steps } = transactions[i];
         for (let j = 0; j < steps.length; j++)
-          outerTr.step(steps[j].map(offsetMap));
+          if (steps[j].map(offsetMap) !== null)
+            outerTr.step(steps[j].map(offsetMap));
       }
       if (outerTr.docChanged)
-        view.dispatch(outerTr.setMeta('outsideView', questionId));
+        context.view.main.dispatch(outerTr.setMeta('outsideView', questionId));
     }
   };
 
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceContainerNode.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceContainerNode.js
index b3d00706b..387bb6298 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceContainerNode.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceContainerNode.js
@@ -7,7 +7,7 @@ const multipleChoiceContainerNode = {
   atom: true,
   selectable: true,
   draggable: true,
-  content: 'block+',
+  content: 'block*',
   parseDOM: [
     {
       tag: 'div.multiple-choice',
-- 
GitLab