From af68095271508b1b8b1bf26f9252484e551f63d3 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Thu, 2 Dec 2021 10:44:57 +0200
Subject: [PATCH] fix

---
 .../components/SwitchComponent.js               | 17 ++++++++++++++---
 .../multipleChoiceSingleCorrectContainerNode.js |  2 +-
 .../schema/multipleChoiceSingleCorrectNode.js   |  3 ---
 3 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/SwitchComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/SwitchComponent.js
index 09e7657a5..f9e5c5847 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/SwitchComponent.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/SwitchComponent.js
@@ -39,8 +39,9 @@ const CustomSwitch = ({ node, getPos }) => {
   const handleChange = () => {
     setChecked(!checked);
 
-    context.view.main.state.doc.descendants((editorNode, index) => {
+    context.view.main.state.doc.descendants((editorNode, pos) => {
       if (editorNode.type.name === 'multiple_choice_single_correct_container') {
+        console.log(editorNode, pos);
         editorNode.content.content.forEach(element => {
           if (element.attrs.id === node.attrs.id) {
             context.view.main.dispatch(
@@ -49,8 +50,18 @@ const CustomSwitch = ({ node, getPos }) => {
                 correct: !checked,
               }),
             );
-          } else {
-            console.log('in else');
+          } else if (element.attrs.correct) {
+            console.log(element);
+            context.view.main.dispatch(
+              context.view.main.state.tr.setNodeMarkup(
+                getPos() + 4,
+                undefined,
+                {
+                  ...element.attrs,
+                  correct: false,
+                },
+              ),
+            );
           }
         });
       }
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/schema/multipleChoiceSingleCorrectContainerNode.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/schema/multipleChoiceSingleCorrectContainerNode.js
index 2f84777aa..8f6db3202 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/schema/multipleChoiceSingleCorrectContainerNode.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/schema/multipleChoiceSingleCorrectContainerNode.js
@@ -16,7 +16,7 @@ const multipleChoiceSingleCorrectContainerNode = {
         return {
           id: dom.dataset.id,
           class: dom.getAttribute('class'),
-          correctId: dom.getAttribute('singleCorrect'),
+          correctId: dom.getAttribute('correctId'),
         };
       },
     },
diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/schema/multipleChoiceSingleCorrectNode.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/schema/multipleChoiceSingleCorrectNode.js
index 3936d4632..719d7e994 100644
--- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/schema/multipleChoiceSingleCorrectNode.js
+++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/schema/multipleChoiceSingleCorrectNode.js
@@ -6,13 +6,11 @@ const multipleChoiceSingleCorrectNode = {
     id: { default: uuidv4() },
     correct: { default: false },
     feedback: { default: '' },
-    singleCorrect: { default: true },
   },
   group: 'block questions',
   content: 'block*',
   defining: true,
 
-  // atom: true,
   parseDOM: [
     {
       tag: 'div.multiple-choice-option-single-correct',
@@ -22,7 +20,6 @@ const multipleChoiceSingleCorrectNode = {
           class: dom.getAttribute('class'),
           correct: JSON.parse(dom.getAttribute('correct').toLowerCase()),
           feedback: dom.getAttribute('feedback'),
-          singleCorrect: dom.getAttribute('singleCorrect'),
         };
       },
     },
-- 
GitLab