From 5d37046dd89d97842b316242cedac4bc776c1550 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Tue, 7 Sep 2021 04:30:58 +0300 Subject: [PATCH] fix HTML representation --- .../components/QuestionComponent.js | 8 +++--- .../helpers/helpers.js | 25 ++++++++++--------- .../schema/multipleChoiceNode.js | 6 +++-- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/QuestionComponent.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/QuestionComponent.js index a57d82abc..a31255fef 100644 --- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/QuestionComponent.js +++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/components/QuestionComponent.js @@ -77,10 +77,10 @@ export default ({ node, view, getPos }) => { }); const removeOption = () => { - main.state.doc.nodesBetween(getPos(), getPos() + 1, (nodes, pos) => { - if (nodes.attrs.id === node.attrs.id) { + main.state.doc.nodesBetween(getPos(), getPos() + 1, (sinlgeNode, pos) => { + if (sinlgeNode.attrs.id === node.attrs.id) { main.dispatch( - main.state.tr.deleteRange(getPos(), getPos() + nodes.nodeSize), + main.state.tr.deleteRange(getPos(), getPos() + sinlgeNode.nodeSize), ); } }); @@ -111,7 +111,7 @@ export default ({ node, view, getPos }) => { // create Empty Paragraph setTimeout(() => { helpers.createEmptyParagraph(context, newAnswerId); - }, 100); + }, 30); } } }); diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/helpers/helpers.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/helpers/helpers.js index 46f1fda20..537c87cab 100644 --- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/helpers/helpers.js +++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/helpers/helpers.js @@ -10,21 +10,22 @@ const createEmptyParagraph = (context, newAnswerId) => { ), ), ); - - let type = context.view.main.state.schema.nodes.paragraph; + if (context.view[newAnswerId].dispatch) { + let type = context.view.main.state.schema.nodes.paragraph; + context.view[newAnswerId].dispatch( + context.view[newAnswerId].state.tr.insert(0, type.create()), + ); + } context.view[newAnswerId].dispatch( - context.view[newAnswerId].state.tr.insert(0, type.create()), + context.view[newAnswerId].state.tr.setSelection( + TextSelection.between( + context.view[newAnswerId].state.selection.$anchor, + context.view[newAnswerId].state.selection.$head, + ), + ), ); + context.view[newAnswerId].focus(); } - context.view[newAnswerId].dispatch( - context.view[newAnswerId].state.tr.setSelection( - TextSelection.between( - context.view[newAnswerId].state.selection.$anchor, - context.view[newAnswerId].state.selection.$head, - ), - ), - ); - context.view[newAnswerId].focus(); }; export default { diff --git a/editors/demo/src/HHMI/MultipleChoiceQuestionService/schema/multipleChoiceNode.js b/editors/demo/src/HHMI/MultipleChoiceQuestionService/schema/multipleChoiceNode.js index 371f84ada..5df549c85 100644 --- a/editors/demo/src/HHMI/MultipleChoiceQuestionService/schema/multipleChoiceNode.js +++ b/editors/demo/src/HHMI/MultipleChoiceQuestionService/schema/multipleChoiceNode.js @@ -1,5 +1,6 @@ const multipleChoiceNode = { attrs: { + class: { default: 'mutiple-choice-option' }, id: { default: '' }, correct: { default: false }, feedback: { default: '' }, @@ -7,17 +8,18 @@ const multipleChoiceNode = { group: 'block', content: 'block*', // atom: true, - toDOM: node => ['multiple-choice', node.attrs, 0], parseDOM: [ { - tag: 'multiple-choice', + tag: 'div.mutiple-choice-option', getAttrs(dom) { return { id: dom.getAttribute('id'), + class: dom.getAttribute('class'), }; }, }, ], + toDOM: node => ['div', node.attrs, 0], }; export default multipleChoiceNode; -- GitLab