diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/FeedbackComponent.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/FeedbackComponent.js index 26e1ee0b575c419a8e1817821b9820efdf19b731..4c3b79cdcd3e75fd01925ca7978543b1e2109651 100644 --- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/FeedbackComponent.js +++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/FeedbackComponent.js @@ -21,10 +21,7 @@ const FeedBackInput = styled.input` export default ({ node, view, getPos }) => { const context = useContext(WaxContext); - const { - view: { main }, - activeViewId, - } = context; + const { activeViewId } = context; const [feedBack, setFeedBack] = useState(node.attrs.feedback); const feedBackRef = useRef(null); diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/QuestionComponent.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/QuestionComponent.js index 8ea0fe6219498bfd23688b1b9db61d43de68e777..e0593fac19163e09591b3545c352a94067a64e38 100644 --- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/QuestionComponent.js +++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/QuestionComponent.js @@ -132,7 +132,7 @@ export default ({ node, view, getPos }) => { <QuestionData> <EditorComponent node={node} view={view} getPos={getPos} /> - <SwitchComponent node={node} /> + <SwitchComponent node={node} getPos={getPos} /> </QuestionData> <FeedbackComponent node={node} view={view} getPos={getPos} /> </QuestionWrapper> diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/SwitchComponent.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/SwitchComponent.js index 2c57ba246bf8cff184f93d7a83dc983a0dda37e8..702ae222664dfe2cea5a9df6b2cec85a4c43d317 100644 --- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/SwitchComponent.js +++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/SwitchComponent.js @@ -1,4 +1,5 @@ -import React, { useState } from 'react'; +import React, { useState, useContext } from 'react'; +import { WaxContext } from 'wax-prosemirror-core'; import styled from 'styled-components'; import Switch from './Switch'; @@ -19,10 +20,19 @@ const StyledSwitch = styled(Switch)` } `; -const CustomSwitch = ({ node }) => { +const CustomSwitch = ({ node, getPos }) => { + const context = useContext(WaxContext); + const { activeViewId } = context; const [checked, setChecked] = useState(false); + const handleChange = () => { setChecked(!checked); + context.view.main.dispatch( + context.view.main.state.tr.setNodeMarkup(getPos(), undefined, { + ...node.attrs, + correct: !checked, + }), + ); }; return ( diff --git a/wax-prosemirror-services/src/PortalService/AbstractNodeView.js b/wax-prosemirror-services/src/PortalService/AbstractNodeView.js index d51b293b35bcf0335da1016428ae8d22829a0072..8542284b27a6c7075357f0f0fd1df84513000781 100644 --- a/wax-prosemirror-services/src/PortalService/AbstractNodeView.js +++ b/wax-prosemirror-services/src/PortalService/AbstractNodeView.js @@ -23,7 +23,7 @@ export default class AbstractNodeView { } update(node) { - 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];