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