From 79ce2a24db51b718627b428ed3773e999c6fc254 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Wed, 19 Jan 2022 17:25:19 +0200
Subject: [PATCH] fix: dropdown value

---
 .../MultipleChoiceQuestion.js                   | 17 +++++++++++++----
 .../MultipleChoiceSingleCorrectQuestion.js      | 17 +++++++++++++----
 .../TrueFalseQuestion.js                        | 14 ++++++++++----
 .../TrueFalseSingleCorrectQuestion.js           | 17 +++++++++++++----
 .../components/QuestionEditorComponent.js       |  8 ++++----
 .../DropComponent.js                            |  5 ++++-
 6 files changed, 57 insertions(+), 21 deletions(-)

diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
index bb219daa6..07ecc6379 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js
@@ -28,10 +28,19 @@ class MultipleChoiceQuestion extends Tools {
 
   get active() {
     return state => {
-      return Commands.isParentOfType(
-        state,
-        state.config.schema.nodes.multiple_choice,
-      );
+      if (
+        Commands.isParentOfType(
+          state,
+          state.config.schema.nodes.multiple_choice,
+        ) ||
+        Commands.isParentOfType(
+          state,
+          state.config.schema.nodes.question_node_multiple,
+        )
+      ) {
+        return true;
+      }
+      return false;
     };
   }
 
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js
index 6510750f2..38e826482 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js
@@ -28,10 +28,19 @@ class MultipleChoiceSingleCorrectQuestion extends Tools {
 
   get active() {
     return state => {
-      return Commands.isParentOfType(
-        state,
-        state.config.schema.nodes.multiple_choice_single_correct,
-      );
+      if (
+        Commands.isParentOfType(
+          state,
+          state.config.schema.nodes.multiple_choice_single_correct,
+        ) ||
+        Commands.isParentOfType(
+          state,
+          state.config.schema.nodes.question_node_multiple_single,
+        )
+      ) {
+        return true;
+      }
+      return false;
     };
   }
 
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js
index 66ea3613b..741db1d27 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js
@@ -28,10 +28,16 @@ class TrueFalseQuestion extends Tools {
 
   get active() {
     return state => {
-      return Commands.isParentOfType(
-        state,
-        state.config.schema.nodes.true_false,
-      );
+      if (
+        Commands.isParentOfType(state, state.config.schema.nodes.true_false) ||
+        Commands.isParentOfType(
+          state,
+          state.config.schema.nodes.question_node_true_false,
+        )
+      ) {
+        return true;
+      }
+      return false;
     };
   }
 
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestion.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestion.js
index 218758c7a..2a6dd28ab 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestion.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestion.js
@@ -28,10 +28,19 @@ class TrueFalseSingleCorrectQuestion extends Tools {
 
   get active() {
     return state => {
-      return Commands.isParentOfType(
-        state,
-        state.config.schema.nodes.true_false_single_correct,
-      );
+      if (
+        Commands.isParentOfType(
+          state,
+          state.config.schema.nodes.true_false_single_correct,
+        ) ||
+        Commands.isParentOfType(
+          state,
+          state.config.schema.nodes.question_node_true_false_single,
+        )
+      ) {
+        return true;
+      }
+      return false;
     };
   }
 
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js
index 64ca4918a..e2540fc90 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js
@@ -173,12 +173,12 @@ const QuestionEditorComponent = ({ node, view, getPos }) => {
   }, []);
 
   const dispatchTransaction = tr => {
-    const outerTr = context.view.main.state.tr;
-    context.view.main.dispatch(outerTr.setMeta('outsideView', questionId));
     const { state, transactions } = questionView.state.applyTransaction(tr);
-    context.updateView({}, questionId);
     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];
@@ -186,7 +186,7 @@ const QuestionEditorComponent = ({ node, view, getPos }) => {
           outerTr.step(steps[j].map(offsetMap));
       }
       if (outerTr.docChanged)
-        context.view.main.dispatch(outerTr.setMeta('outsideView', questionId));
+        view.dispatch(outerTr.setMeta('outsideView', questionId));
     }
   };
 
diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropComponent.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropComponent.js
index 9ba491eef..309194460 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropComponent.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropComponent.js
@@ -73,9 +73,12 @@ const DropComponent = ({ title, view, tools }) => {
   ];
 
   useEffect(() => {
+    setLabel('Multiple Question Types');
     dropDownOptions.forEach((option, i) => {
       if (option.item.active(main.state)) {
-        setLabel(option.label);
+        setTimeout(() => {
+          setLabel(option.label);
+        });
       }
     });
   }, [activeViewId]);
-- 
GitLab