From b30e8c9f849588425a63567c0e4fc48c918fc6a7 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Fri, 4 Feb 2022 00:03:27 +0200 Subject: [PATCH] set user answer --- editors/demo/src/HHMI/HHMI.js | 2 +- .../components/SwitchComponent.js | 27 ++++++++++++------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/editors/demo/src/HHMI/HHMI.js b/editors/demo/src/HHMI/HHMI.js index a30b810a3..390a5dbf4 100644 --- a/editors/demo/src/HHMI/HHMI.js +++ b/editors/demo/src/HHMI/HHMI.js @@ -27,7 +27,7 @@ const Hhmi = () => { value={t} readonly layout={HhmiLayout} - // onChange={source => console.log(source)} + onChange={source => console.log(source)} /> </> ); diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js index 4cc9b3409..b0464c6c8 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js @@ -26,6 +26,7 @@ const StyledSwitch = styled(Switch)` const CustomSwitch = ({ node, getPos }) => { const context = useContext(WaxContext); const [checked, setChecked] = useState(false); + const [checkedAnswerMode, setCheckedAnswerMode] = useState(false); const { view, view: { main }, @@ -35,8 +36,6 @@ const CustomSwitch = ({ node, getPos }) => { return editable; }); - console.log(isEditable); - useEffect(() => { const allNodes = getNodes(main); allNodes.forEach(singNode => { @@ -48,22 +47,32 @@ const CustomSwitch = ({ node, getPos }) => { const handleChange = () => { setChecked(!checked); + setCheckedAnswerMode(!checkedAnswerMode); const allNodes = getNodes(main); allNodes.forEach(singleNode => { if (singleNode.node.attrs.id === node.attrs.id) { - main.dispatch( - main.state.tr.setNodeMarkup(getPos(), undefined, { - ...singleNode.node.attrs, - correct: !checked, - }), - ); + if (isEditable) { + main.dispatch( + main.state.tr.setNodeMarkup(getPos(), undefined, { + ...singleNode.node.attrs, + correct: !checked, + }), + ); + } else { + main.dispatch( + main.state.tr.setNodeMarkup(getPos(), undefined, { + ...singleNode.node.attrs, + correctAnswer: !checkedAnswerMode, + }), + ); + } } }); }; return ( <StyledSwitch - checked={isEditable ? checked : false} + checked={isEditable ? checked : checkedAnswerMode} checkedChildren="YES" label="Correct?" labelPosition="left" -- GitLab