From 741f7f97bd145e892ff4b0bff2579bd65b594262 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Sat, 4 Sep 2021 10:35:15 +0300
Subject: [PATCH] update correct attr

---
 .../MultipleChoiceNodeView.js                 |  2 +-
 .../components/SwitchComponent.js             | 24 ++++++++++++++++++-
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceNodeView.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceNodeView.js
index 54ab7fffa..5b2e317c5 100644
--- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceNodeView.js
+++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/MultipleChoiceNodeView.js
@@ -29,7 +29,7 @@ export default class MultipleChoiceNodeView extends AbstractNodeView {
     )
       return true;
 
-    if (!node.sameMarkup(this.node)) return false;
+    // if (!node.sameMarkup(this.node)) return false;
     this.node = node;
     if (this.context.view[node.attrs.id]) {
       const { state } = this.context.view[node.attrs.id];
diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/SwitchComponent.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/SwitchComponent.js
index ca806312e..d696b1f9e 100644
--- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/SwitchComponent.js
+++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/SwitchComponent.js
@@ -1,5 +1,7 @@
-import React, { useState, useContext } from 'react';
+/* eslint-disable react-hooks/exhaustive-deps */
+import React, { useState, useContext, useEffect } from 'react';
 import { WaxContext } from 'wax-prosemirror-core';
+import { DocumentHelpers } from 'wax-prosemirror-utilities';
 import styled from 'styled-components';
 import Switch from './Switch';
 
@@ -24,6 +26,15 @@ const CustomSwitch = ({ node, getPos }) => {
   const context = useContext(WaxContext);
   const [checked, setChecked] = useState(false);
 
+  useEffect(() => {
+    const allNodes = getNodes(context.view);
+    allNodes.forEach(singNode => {
+      if (singNode.node.attrs.id === node.attrs.id) {
+        setChecked(singNode.node.attrs.correct);
+      }
+    });
+  }, [getNodes(context.view)]);
+
   const handleChange = () => {
     setChecked(!checked);
     context.view.main.dispatch(
@@ -46,4 +57,15 @@ const CustomSwitch = ({ node, getPos }) => {
   );
 };
 
+const getNodes = view => {
+  const allNodes = DocumentHelpers.findBlockNodes(view.main.state.doc);
+  const multipleChoiceNodes = [];
+  allNodes.forEach(node => {
+    if (node.node.type.name === 'multiple_choice') {
+      multipleChoiceNodes.push(node);
+    }
+  });
+  return multipleChoiceNodes;
+};
+
 export default CustomSwitch;
-- 
GitLab