From 0889fd17ec00239a2484be232a7f35da1ebdf65c Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Tue, 4 Jan 2022 16:42:34 +0200 Subject: [PATCH] fix schema --- editors/demo/src/Editors.js | 2 +- .../components/QuestionEditorComponent.js | 22 +++++++++++-------- .../schema/multipleChoiceContainerNode.js | 2 +- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/editors/demo/src/Editors.js b/editors/demo/src/Editors.js index abd0628fb..d19991a2e 100644 --- a/editors/demo/src/Editors.js +++ b/editors/demo/src/Editors.js @@ -70,7 +70,7 @@ const Editors = () => { case 'ncbi': return <NCBI />; default: - return <Editoria />; + return <HHMI />; } }; diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js index 60d1bce45..6f4763aec 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js @@ -115,12 +115,14 @@ const QuestionEditorComponent = ({ node, view, getPos }) => { mousedown: () => { context.updateView({}, questionId); context.view[context.activeViewId].dispatch( - context.view[context.activeViewId].state.tr.setSelection( - TextSelection.between( - context.view[context.activeViewId].state.selection.$anchor, - context.view[context.activeViewId].state.selection.$head, + context.view[context.activeViewId].state.tr + .setMeta('outsideView', questionId) + .setSelection( + TextSelection.between( + context.view[context.activeViewId].state.selection.$anchor, + context.view[context.activeViewId].state.selection.$head, + ), ), - ), ); // Kludge to prevent issues due to the fact that the whole @@ -147,20 +149,22 @@ const QuestionEditorComponent = ({ node, view, getPos }) => { }, []); const dispatchTransaction = tr => { + context.updateView({}, questionId); + const outerTr = context.view.main.state.tr; + context.view.main.dispatch(outerTr.setMeta('outsideView', questionId)); const { state, transactions } = questionView.state.applyTransaction(tr); 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]; for (let j = 0; j < steps.length; j++) - outerTr.step(steps[j].map(offsetMap)); + if (steps[j].map(offsetMap) !== null) + outerTr.step(steps[j].map(offsetMap)); } if (outerTr.docChanged) - view.dispatch(outerTr.setMeta('outsideView', questionId)); + context.view.main.dispatch(outerTr.setMeta('outsideView', questionId)); } }; diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceContainerNode.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceContainerNode.js index b3d00706b..387bb6298 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceContainerNode.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/schema/multipleChoiceContainerNode.js @@ -7,7 +7,7 @@ const multipleChoiceContainerNode = { atom: true, selectable: true, draggable: true, - content: 'block+', + content: 'block*', parseDOM: [ { tag: 'div.multiple-choice', -- GitLab