From 79ce2a24db51b718627b428ed3773e999c6fc254 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Wed, 19 Jan 2022 17:25:19 +0200 Subject: [PATCH] fix: dropdown value --- .../MultipleChoiceQuestion.js | 17 +++++++++++++---- .../MultipleChoiceSingleCorrectQuestion.js | 17 +++++++++++++---- .../TrueFalseQuestion.js | 14 ++++++++++---- .../TrueFalseSingleCorrectQuestion.js | 17 +++++++++++++---- .../components/QuestionEditorComponent.js | 8 ++++---- .../DropComponent.js | 5 ++++- 6 files changed, 57 insertions(+), 21 deletions(-) diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js index bb219daa6..07ecc6379 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceQuestion.js @@ -28,10 +28,19 @@ class MultipleChoiceQuestion extends Tools { get active() { return state => { - return Commands.isParentOfType( - state, - state.config.schema.nodes.multiple_choice, - ); + if ( + Commands.isParentOfType( + state, + state.config.schema.nodes.multiple_choice, + ) || + Commands.isParentOfType( + state, + state.config.schema.nodes.question_node_multiple, + ) + ) { + return true; + } + return false; }; } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js index 6510750f2..38e826482 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectQuestion.js @@ -28,10 +28,19 @@ class MultipleChoiceSingleCorrectQuestion extends Tools { get active() { return state => { - return Commands.isParentOfType( - state, - state.config.schema.nodes.multiple_choice_single_correct, - ); + if ( + Commands.isParentOfType( + state, + state.config.schema.nodes.multiple_choice_single_correct, + ) || + Commands.isParentOfType( + state, + state.config.schema.nodes.question_node_multiple_single, + ) + ) { + return true; + } + return false; }; } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js index 66ea3613b..741db1d27 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseQuestion.js @@ -28,10 +28,16 @@ class TrueFalseQuestion extends Tools { get active() { return state => { - return Commands.isParentOfType( - state, - state.config.schema.nodes.true_false, - ); + if ( + Commands.isParentOfType(state, state.config.schema.nodes.true_false) || + Commands.isParentOfType( + state, + state.config.schema.nodes.question_node_true_false, + ) + ) { + return true; + } + return false; }; } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestion.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestion.js index 218758c7a..2a6dd28ab 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestion.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectQuestion.js @@ -28,10 +28,19 @@ class TrueFalseSingleCorrectQuestion extends Tools { get active() { return state => { - return Commands.isParentOfType( - state, - state.config.schema.nodes.true_false_single_correct, - ); + if ( + Commands.isParentOfType( + state, + state.config.schema.nodes.true_false_single_correct, + ) || + Commands.isParentOfType( + state, + state.config.schema.nodes.question_node_true_false_single, + ) + ) { + return true; + } + return false; }; } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js index 64ca4918a..e2540fc90 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js @@ -173,12 +173,12 @@ const QuestionEditorComponent = ({ node, view, getPos }) => { }, []); const dispatchTransaction = tr => { - const outerTr = context.view.main.state.tr; - context.view.main.dispatch(outerTr.setMeta('outsideView', questionId)); const { state, transactions } = questionView.state.applyTransaction(tr); - context.updateView({}, questionId); questionView.updateState(state); + context.updateView({}, questionId); + if (!tr.getMeta('fromOutside')) { + const outerTr = view.state.tr; const offsetMap = StepMap.offset(getPos() + 1); for (let i = 0; i < transactions.length; i++) { const { steps } = transactions[i]; @@ -186,7 +186,7 @@ const QuestionEditorComponent = ({ node, view, getPos }) => { outerTr.step(steps[j].map(offsetMap)); } if (outerTr.docChanged) - context.view.main.dispatch(outerTr.setMeta('outsideView', questionId)); + view.dispatch(outerTr.setMeta('outsideView', questionId)); } }; diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropComponent.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropComponent.js index 9ba491eef..309194460 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropComponent.js +++ b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropComponent.js @@ -73,9 +73,12 @@ const DropComponent = ({ title, view, tools }) => { ]; useEffect(() => { + setLabel('Multiple Question Types'); dropDownOptions.forEach((option, i) => { if (option.item.active(main.state)) { - setLabel(option.label); + setTimeout(() => { + setLabel(option.label); + }); } }); }, [activeViewId]); -- GitLab