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