From 2bab18d2cfb7ec8338f51227fed16fcd6be52ca3 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Sat, 12 Mar 2022 11:59:24 +0200 Subject: [PATCH] rest of files --- .../src/Editoria/layout/EditoriaLayout.js | 1 + .../Editoria/layout/EditoriaMobileLayout.js | 4 +-- .../src/components/images/ImageUpload.js | 8 ++--- .../trackChanges/ConnectedTrackChange.js | 26 ++++++++-------- .../TrackChangeOptionsComponent.js | 12 ++++---- wax-prosemirror-core/src/helpers/helpers.js | 4 +-- .../src/EssayService/EssayAnswerNodeView.js | 8 ++--- .../src/EssayService/EssayQuestion.js | 30 ++++++++++--------- .../src/EssayService/EssayQuestionNodeView.js | 8 ++--- .../components/EditorComponent.js | 19 +++++++----- .../components/EssayAnswerComponent.js | 23 +++++++------- .../components/EssayQuestionComponent.js | 24 ++++++++------- .../src/EssayService/components/ToolBarBtn.js | 4 +-- .../FillTheGapContainerNodeView.js | 12 ++++---- .../FillTheGapNodeView.js | 16 ++++------ .../components/ContainerEditor.js | 18 ++++++----- .../components/EditorComponent.js | 19 ++++++------ .../components/FeedbackComponent.js | 20 ++++++------- .../FillTheGapContainerComponent.js | 5 ++-- .../components/InputComponent.js | 17 ++++++----- .../MultipleChoiceContainerNodeView.js | 8 ++--- .../MultipleChoiceNodeView.js | 8 ++--- ...pleChoiceSingleCorrectContainerNodeView.js | 8 ++--- .../MultipleChoiceSingleCorrectNodeView.js | 8 ++--- .../QuestionMultipleSingleNodeView.js | 8 ++--- .../components/AnswerComponent.js | 20 +++++-------- .../components/SwitchComponent.js | 8 ++--- .../QuestionNodeView.js | 8 ++--- .../QuestionTrueFalseNodeView.js | 8 ++--- .../TrueFalseContainerNodeView.js | 8 ++--- .../TrueFalseNodeView.js | 8 ++--- .../components/AnswerComponent.js | 21 +++++-------- .../components/SwitchComponent.js | 8 ++--- .../QuestionTrueFalseSingleNodeView.js | 8 ++--- ...TrueFalseSingleCorrectContainerNodeView.js | 8 ++--- .../TrueFalseSingleCorrectNodeView.js | 8 ++--- .../components/AnswerComponent.js | 21 +++++-------- .../components/SwitchComponent.js | 8 ++--- .../components/AnswerComponent.js | 21 +++++-------- .../components/EditorComponent.js | 25 +++++++++------- .../components/FeedbackComponent.js | 28 +++++++++-------- .../components/QuestionEditorComponent.js | 17 ++++++----- .../components/SwitchComponent.js | 9 +++--- .../components/ToolBarBtn.js | 4 +-- .../helpers/helpers.js | 30 +++++++++---------- .../src/PortalService/AbstractNodeView.js | 2 +- .../DropComponent.js | 2 +- 47 files changed, 298 insertions(+), 300 deletions(-) diff --git a/editors/demo/src/Editoria/layout/EditoriaLayout.js b/editors/demo/src/Editoria/layout/EditoriaLayout.js index bc4a0b7a0..6eea3a0c1 100644 --- a/editors/demo/src/Editoria/layout/EditoriaLayout.js +++ b/editors/demo/src/Editoria/layout/EditoriaLayout.js @@ -171,6 +171,7 @@ const NotesContainer = styled.div` padding-left: ${grid(10)}; height: 100%; width: 65%; + ${EditorElements}; `; const WaxBottomRightInfo = styled.div``; const InfoContainer = styled.div` diff --git a/editors/demo/src/Editoria/layout/EditoriaMobileLayout.js b/editors/demo/src/Editoria/layout/EditoriaMobileLayout.js index 8bb9cc23d..7cda592c3 100644 --- a/editors/demo/src/Editoria/layout/EditoriaMobileLayout.js +++ b/editors/demo/src/Editoria/layout/EditoriaMobileLayout.js @@ -152,7 +152,7 @@ const InfoContainer = styled.div` right: 21px; z-index: 1; `; -const InfoArea = styled.div``; + let surfaceHeight = 500; let notesHeight = 150; @@ -178,7 +178,7 @@ const BottomRightInfo = ComponentPlugin('BottomRightInfo'); const EditoriaLayout = ({ editor }) => { const { - view: { main }, + pmViews: { main }, } = useContext(WaxContext); const notes = main && getNotes(main); diff --git a/wax-prosemirror-components/src/components/images/ImageUpload.js b/wax-prosemirror-components/src/components/images/ImageUpload.js index ced0b167c..146f4cb4f 100644 --- a/wax-prosemirror-components/src/components/images/ImageUpload.js +++ b/wax-prosemirror-components/src/components/images/ImageUpload.js @@ -35,15 +35,15 @@ const ImageUpload = ({ item, fileUpload, view }) => { nodeFound = node; } }); - context.view.main.dispatch( - context.view.main.state.tr + main.dispatch( + main.state.tr .setMeta('outsideView', activeViewId) .setSelection( new TextSelection( - context.view.main.state.tr.doc.resolve( + main.state.tr.doc.resolve( nodeFound.pos + 2 + - context.view[activeViewId].state.selection.to, + context.pmViews[activeViewId].state.selection.to, ), ), ), diff --git a/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js b/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js index b4e28d9e1..7193c658e 100644 --- a/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js +++ b/wax-prosemirror-components/src/components/trackChanges/ConnectedTrackChange.js @@ -20,7 +20,7 @@ const ConnectedTrackChangeStyled = styled.div` export default ({ trackChangeId, top, recalculateTops, trackChange }) => { const context = useContext(WaxContext); - const { app, activeView, view } = context; + const { app, activeView, pmViews } = context; const user = app.config.get('user'); const [isActive, setIsActive] = useState(false); const { state, dispatch } = activeView; @@ -41,30 +41,32 @@ export default ({ trackChangeId, top, recalculateTops, trackChange }) => { if (viewId !== 'main') context.updateView({}, viewId); const allTracksWithSameId = DocumentHelpers.findAllMarksWithSameId( - view[viewId].state, + pmViews[viewId].state, trackData, ); const maxPos = maxBy(allTracksWithSameId, 'pos'); maxPos.pos += last(allTracksWithSameId).node.nodeSize; - view[viewId].dispatch( - view[viewId].state.tr.setSelection( - new TextSelection(view[viewId].state.tr.doc.resolve(maxPos.pos - 1)), + pmViews[viewId].dispatch( + pmViews[viewId].state.tr.setSelection( + new TextSelection(pmViews[viewId].state.tr.doc.resolve(maxPos.pos - 1)), ), ); - view[viewId].focus(); + pmViews[viewId].focus(); return true; }; const focusOnBlcock = trackData => { - view[viewId].dispatch( - view[viewId].state.tr.setSelection( - new TextSelection(view[viewId].state.tr.doc.resolve(trackData.pos + 1)), + pmViews[viewId].dispatch( + pmViews[viewId].state.tr.setSelection( + new TextSelection( + pmViews[viewId].state.tr.doc.resolve(trackData.pos + 1), + ), ), ); - view[viewId].focus(); + pmViews[viewId].focus(); return true; }; @@ -80,13 +82,13 @@ export default ({ trackChangeId, top, recalculateTops, trackChange }) => { const onClickAccept = () => { const acceptConfig = app.config.get('config.AcceptTrackChangeService'); acceptTrackChange(state, dispatch, user, activeTrackChange, acceptConfig); - view[viewId].focus(); + pmViews[viewId].focus(); }; const onClickReject = () => { const rejectConfig = app.config.get('config.RejectTrackChangeService'); rejectTrackChange(state, dispatch, user, activeTrackChange, rejectConfig); - view[viewId].focus(); + pmViews[viewId].focus(); }; const MemorizedTrackChange = useMemo( diff --git a/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js b/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js index ae06eb172..38554a98f 100644 --- a/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js +++ b/wax-prosemirror-components/src/components/trackChanges/TrackChangeOptionsComponent.js @@ -189,13 +189,13 @@ const TrackChangeOptionsComponent = ({ }) => { const [isShownTrack, setIsShownTrack] = useState(false); const menuItems = groups[0].items; - const { app, view, activeView, activeViewId } = useContext(WaxContext); - const { state } = view; + const { app, pmViews, activeView, activeViewId } = useContext(WaxContext); + const { state } = activeView; const user = app.config.get('user'); const hideShowPlugin = app.PmPlugins.get('hideShowPlugin'); - const inlineTracks = getInlineTracks(view.main).length; - const blockTracks = getTrackBlockNodes(view.main).length; - const comments = getComments(view.main).length; + const inlineTracks = getInlineTracks(pmViews.main).length; + const blockTracks = getTrackBlockNodes(pmViews.main).length; + const comments = getComments(pmViews.main).length; const renderTools = () => { const tools = []; @@ -223,7 +223,7 @@ const TrackChangeOptionsComponent = ({ if (menuItem.name === 'ShowHideTrackChange') { setShowHidden(!showHiddenValue); hideShowPlugin.props.setHideShow(showHiddenValue); - each(view, (singleView, viewId) => { + each(pmViews, (singleView, viewId) => { singleView.dispatch(singleView.state.tr); }); return false; diff --git a/wax-prosemirror-core/src/helpers/helpers.js b/wax-prosemirror-core/src/helpers/helpers.js index 1f5b4d512..974c01309 100644 --- a/wax-prosemirror-core/src/helpers/helpers.js +++ b/wax-prosemirror-core/src/helpers/helpers.js @@ -35,10 +35,10 @@ const getDocContent = (schema, serializer, targetFormat, context) => { let content = ''; alterNotesSchema(schema); if (targetFormat === 'JSON') { - content = context.app.context.view.main.state.doc.content; + content = context.app.context.pmViews.main.state.doc.content; } else { const serialize = serializer(schema); - content = serialize(context.app.context.view.main.state.doc.content); + content = serialize(context.app.context.pmViews.main.state.doc.content); } revertNotesSchema(content); diff --git a/wax-prosemirror-services/src/EssayService/EssayAnswerNodeView.js b/wax-prosemirror-services/src/EssayService/EssayAnswerNodeView.js index 36cda93ba..6946e9f83 100644 --- a/wax-prosemirror-services/src/EssayService/EssayAnswerNodeView.js +++ b/wax-prosemirror-services/src/EssayService/EssayAnswerNodeView.js @@ -24,8 +24,8 @@ export default class EssayAnswerNodeView extends AbstractNodeView { update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class EssayAnswerNodeView extends AbstractNodeView { endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -46,7 +46,7 @@ export default class EssayAnswerNodeView extends AbstractNodeView { } stopEvent(event) { - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } } diff --git a/wax-prosemirror-services/src/EssayService/EssayQuestion.js b/wax-prosemirror-services/src/EssayService/EssayQuestion.js index cae89533f..8ab9229ea 100644 --- a/wax-prosemirror-services/src/EssayService/EssayQuestion.js +++ b/wax-prosemirror-services/src/EssayService/EssayQuestion.js @@ -24,30 +24,32 @@ const checkifEmpty = view => { }; const createEmptyParagraph = (context, newAnswerId) => { - if (context.view[newAnswerId]) { - context.view[newAnswerId].dispatch( - context.view[newAnswerId].state.tr.setSelection( + const { pmViews } = context; + + if (pmViews[newAnswerId]) { + pmViews[newAnswerId].dispatch( + pmViews[newAnswerId].state.tr.setSelection( TextSelection.between( - context.view[newAnswerId].state.selection.$anchor, - context.view[newAnswerId].state.selection.$head, + pmViews[newAnswerId].state.selection.$anchor, + pmViews[newAnswerId].state.selection.$head, ), ), ); - if (context.view[newAnswerId].dispatch) { - const type = context.view.main.state.schema.nodes.paragraph; - context.view[newAnswerId].dispatch( - context.view[newAnswerId].state.tr.insert(0, type.create()), + if (pmViews[newAnswerId].dispatch) { + const type = pmViews.main.state.schema.nodes.paragraph; + pmViews[newAnswerId].dispatch( + pmViews[newAnswerId].state.tr.insert(0, type.create()), ); } - context.view[newAnswerId].dispatch( - context.view[newAnswerId].state.tr.setSelection( + pmViews[newAnswerId].dispatch( + pmViews[newAnswerId].state.tr.setSelection( TextSelection.between( - context.view[newAnswerId].state.selection.$anchor, - context.view[newAnswerId].state.selection.$head, + pmViews[newAnswerId].state.selection.$anchor, + pmViews[newAnswerId].state.selection.$head, ), ), ); - context.view[newAnswerId].focus(); + pmViews[newAnswerId].focus(); } }; diff --git a/wax-prosemirror-services/src/EssayService/EssayQuestionNodeView.js b/wax-prosemirror-services/src/EssayService/EssayQuestionNodeView.js index c69fefc4c..7f98b85d5 100644 --- a/wax-prosemirror-services/src/EssayService/EssayQuestionNodeView.js +++ b/wax-prosemirror-services/src/EssayService/EssayQuestionNodeView.js @@ -24,8 +24,8 @@ export default class EssayQuestionNodeView extends AbstractNodeView { update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class EssayQuestionNodeView extends AbstractNodeView { endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -46,7 +46,7 @@ export default class EssayQuestionNodeView extends AbstractNodeView { } stopEvent(event) { - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } } diff --git a/wax-prosemirror-services/src/EssayService/components/EditorComponent.js b/wax-prosemirror-services/src/EssayService/components/EditorComponent.js index 8bfcdfd54..753a54d14 100644 --- a/wax-prosemirror-services/src/EssayService/components/EditorComponent.js +++ b/wax-prosemirror-services/src/EssayService/components/EditorComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useContext, useRef, useEffect } from 'react'; @@ -45,10 +44,14 @@ const EditorComponent = ({ node, view, getPos }) => { const editorRef = useRef(); const context = useContext(WaxContext); - const { activeViewId } = context; + const { + app, + activeViewId, + pmViews: { main }, + } = context; let questionView; const questionId = node.attrs.id; - const isEditable = context.view.main.props.editable(editable => { + const isEditable = main.props.editable(editable => { return editable; }); @@ -69,7 +72,7 @@ const EditorComponent = ({ node, view, getPos }) => { }; }; - const plugins = [keymap(createKeyBindings()), ...context.app.getPlugins()]; + const plugins = [keymap(createKeyBindings()), ...app.getPlugins()]; // eslint-disable-next-line no-shadow const createPlaceholder = placeholder => { @@ -99,11 +102,11 @@ const EditorComponent = ({ node, view, getPos }) => { disallowedTools: ['Images', 'Lists', 'lift', 'MultipleChoice'], handleDOMEvents: { mousedown: () => { - context.view[activeViewId].dispatch( - context.view[activeViewId].state.tr.setSelection( + context.pmViews[activeViewId].dispatch( + context.pmViews[activeViewId].state.tr.setSelection( TextSelection.between( - context.view[activeViewId].state.selection.$anchor, - context.view[activeViewId].state.selection.$head, + context.pmViews[activeViewId].state.selection.$anchor, + context.pmViews[activeViewId].state.selection.$head, ), ), ); diff --git a/wax-prosemirror-services/src/EssayService/components/EssayAnswerComponent.js b/wax-prosemirror-services/src/EssayService/components/EssayAnswerComponent.js index 97a50f237..696278600 100644 --- a/wax-prosemirror-services/src/EssayService/components/EssayAnswerComponent.js +++ b/wax-prosemirror-services/src/EssayService/components/EssayAnswerComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useContext, useRef, useEffect } from 'react'; @@ -51,9 +50,13 @@ const EssayAnswerComponent = ({ node, view, getPos }) => { const editorRef = useRef(); const context = useContext(WaxContext); + const { + app, + pmViews: { main }, + } = context; let essayAnswerView; const questionId = node.attrs.id; - const isEditable = context.view.main.props.editable(editable => { + const isEditable = main.props.editable(editable => { return editable; }); @@ -100,7 +103,7 @@ const EssayAnswerComponent = ({ node, view, getPos }) => { }; }; - const plugins = [keymap(createKeyBindings()), ...context.app.getPlugins()]; + const plugins = [keymap(createKeyBindings()), ...app.getPlugins()]; // eslint-disable-next-line no-shadow const createPlaceholder = placeholder => { @@ -131,15 +134,15 @@ const EssayAnswerComponent = ({ node, view, getPos }) => { handleDOMEvents: { mousedown: () => { context.updateView({}, questionId); - context.view.main.dispatch( - context.view.main.state.tr + main.dispatch( + main.state.tr .setMeta('outsideView', questionId) .setSelection( new TextSelection( - context.view.main.state.tr.doc.resolve( + main.state.tr.doc.resolve( getPos() + 2 + - context.view[questionId].state.selection.to, + context.pmViews[questionId].state.selection.to, ), ), ), @@ -172,8 +175,8 @@ const EssayAnswerComponent = ({ node, view, getPos }) => { }, []); const dispatchTransaction = tr => { - const outerTr = context.view.main.state.tr; - context.view.main.dispatch(outerTr.setMeta('outsideView', questionId)); + const outerTr = main.state.tr; + main.dispatch(outerTr.setMeta('outsideView', questionId)); const { state, transactions } = essayAnswerView.state.applyTransaction(tr); context.updateView({}, questionId); essayAnswerView.updateState(state); @@ -185,7 +188,7 @@ const EssayAnswerComponent = ({ node, view, getPos }) => { outerTr.step(steps[j].map(offsetMap)); } if (outerTr.docChanged) - context.view.main.dispatch(outerTr.setMeta('outsideView', questionId)); + main.dispatch(outerTr.setMeta('outsideView', questionId)); } }; diff --git a/wax-prosemirror-services/src/EssayService/components/EssayQuestionComponent.js b/wax-prosemirror-services/src/EssayService/components/EssayQuestionComponent.js index b2add9612..32f738970 100644 --- a/wax-prosemirror-services/src/EssayService/components/EssayQuestionComponent.js +++ b/wax-prosemirror-services/src/EssayService/components/EssayQuestionComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useContext, useRef, useEffect } from 'react'; @@ -49,9 +48,14 @@ const EssayQuestionComponent = ({ node, view, getPos }) => { const editorRef = useRef(); const context = useContext(WaxContext); + const { + app, + pmViews: { main }, + } = context; + let essayQuestionView; const questionId = node.attrs.id; - const isEditable = context.view.main.props.editable(editable => { + const isEditable = main.props.editable(editable => { return editable; }); @@ -98,7 +102,7 @@ const EssayQuestionComponent = ({ node, view, getPos }) => { }; }; - const plugins = [keymap(createKeyBindings()), ...context.app.getPlugins()]; + const plugins = [keymap(createKeyBindings()), ...app.getPlugins()]; // eslint-disable-next-line no-shadow const createPlaceholder = placeholder => { @@ -129,15 +133,15 @@ const EssayQuestionComponent = ({ node, view, getPos }) => { handleDOMEvents: { mousedown: () => { context.updateView({}, questionId); - context.view.main.dispatch( - context.view.main.state.tr + main.dispatch( + main.state.tr .setMeta('outsideView', questionId) .setSelection( new TextSelection( - context.view.main.state.tr.doc.resolve( + main.state.tr.doc.resolve( getPos() + 2 + - context.view[questionId].state.selection.to, + context.pmViews[questionId].state.selection.to, ), ), ), @@ -173,8 +177,8 @@ const EssayQuestionComponent = ({ node, view, getPos }) => { }, []); const dispatchTransaction = tr => { - const outerTr = context.view.main.state.tr; - context.view.main.dispatch(outerTr.setMeta('outsideView', questionId)); + const outerTr = main.state.tr; + main.dispatch(outerTr.setMeta('outsideView', questionId)); const { state, transactions } = essayQuestionView.state.applyTransaction( tr, ); @@ -188,7 +192,7 @@ const EssayQuestionComponent = ({ node, view, getPos }) => { outerTr.step(steps[j].map(offsetMap)); } if (outerTr.docChanged) - context.view.main.dispatch(outerTr.setMeta('outsideView', questionId)); + main.dispatch(outerTr.setMeta('outsideView', questionId)); } }; diff --git a/wax-prosemirror-services/src/EssayService/components/ToolBarBtn.js b/wax-prosemirror-services/src/EssayService/components/ToolBarBtn.js index 84090be50..ceec5b108 100644 --- a/wax-prosemirror-services/src/EssayService/components/ToolBarBtn.js +++ b/wax-prosemirror-services/src/EssayService/components/ToolBarBtn.js @@ -16,7 +16,7 @@ const ToolBarBtn = ({ view = {}, item }) => { const { icon, label, select, title } = item; const context = useContext(WaxContext); const { - view: { main }, + pmViews: { main }, activeView, } = useContext(WaxContext); @@ -38,7 +38,7 @@ const ToolBarBtn = ({ view = {}, item }) => { label={label} onMouseDown={e => { e.preventDefault(); - item.run(context.view.main, context); + item.run(main, context); }} title={title} /> diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapContainerNodeView.js b/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapContainerNodeView.js index c24768949..b61ea7648 100644 --- a/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapContainerNodeView.js +++ b/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapContainerNodeView.js @@ -24,8 +24,8 @@ export default class FillTheGapContainerNodeView extends AbstractNodeView { update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class FillTheGapContainerNodeView extends AbstractNodeView { endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -46,7 +46,7 @@ export default class FillTheGapContainerNodeView extends AbstractNodeView { } selectNode() { - this.context.view[this.node.attrs.id].focus(); + this.context.pmViews[this.node.attrs.id].focus(); } stopEvent(event) { @@ -55,9 +55,9 @@ export default class FillTheGapContainerNodeView extends AbstractNodeView { } return ( - this.context.view[this.node.attrs.id] !== undefined && + this.context.pmViews[this.node.attrs.id] !== undefined && event.target !== undefined && - this.context.view[this.node.attrs.id].dom.contains(event.target) + this.context.pmViews[this.node.attrs.id].dom.contains(event.target) ); } } diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapNodeView.js b/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapNodeView.js index 701c2cf6c..068d2d702 100644 --- a/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapNodeView.js +++ b/wax-prosemirror-services/src/FillTheGapQuestionService/FillTheGapNodeView.js @@ -24,8 +24,8 @@ export default class FillTheGapNodeView extends AbstractNodeView { update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class FillTheGapNodeView extends AbstractNodeView { endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -46,18 +46,14 @@ export default class FillTheGapNodeView extends AbstractNodeView { } selectNode() { - this.context.view[this.node.attrs.id].focus(); + this.context.pmViews[this.node.attrs.id].focus(); } stopEvent(event) { return ( - this.context.view[this.node.attrs.id] !== undefined && + this.context.pmViews[this.node.attrs.id] !== undefined && event.target !== undefined && - this.context.view[this.node.attrs.id].dom.contains(event.target) + this.context.pmViews[this.node.attrs.id].dom.contains(event.target) ); } - - ignoreMutation() { - return true; - } } diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/components/ContainerEditor.js b/wax-prosemirror-services/src/FillTheGapQuestionService/components/ContainerEditor.js index a3083d237..27bdb40de 100644 --- a/wax-prosemirror-services/src/FillTheGapQuestionService/components/ContainerEditor.js +++ b/wax-prosemirror-services/src/FillTheGapQuestionService/components/ContainerEditor.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useContext, useRef, useEffect } from 'react'; @@ -36,9 +35,14 @@ const EditorComponent = ({ node, view, getPos }) => { const editorRef = useRef(); const context = useContext(WaxContext); + const { + app, + pmViews: { main }, + } = context; + let gapContainerView; const questionId = node.attrs.id; - const isEditable = context.view.main.props.editable(editable => { + const isEditable = main.props.editable(editable => { return editable; }); @@ -59,7 +63,7 @@ const EditorComponent = ({ node, view, getPos }) => { }; }; - const plugins = [keymap(createKeyBindings()), ...context.app.getPlugins()]; + const plugins = [keymap(createKeyBindings()), ...app.getPlugins()]; finalPlugins = finalPlugins.concat([...plugins]); @@ -86,15 +90,15 @@ const EditorComponent = ({ node, view, getPos }) => { ], handleDOMEvents: { mousedown: () => { - context.view.main.dispatch( - context.view.main.state.tr + main.dispatch( + main.state.tr .setMeta('outsideView', questionId) .setSelection( new TextSelection( - context.view.main.state.tr.doc.resolve( + main.state.tr.doc.resolve( getPos() + 2 + - context.view[questionId].state.selection.to, + context.pmViews[questionId].state.selection.to, ), ), ), diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/components/EditorComponent.js b/wax-prosemirror-services/src/FillTheGapQuestionService/components/EditorComponent.js index dfd211373..77521c768 100644 --- a/wax-prosemirror-services/src/FillTheGapQuestionService/components/EditorComponent.js +++ b/wax-prosemirror-services/src/FillTheGapQuestionService/components/EditorComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useContext, useRef, useEffect } from 'react'; @@ -49,9 +48,13 @@ const EditorComponent = ({ node, view, getPos }) => { const editorRef = useRef(); const context = useContext(WaxContext); + const { + app, + pmViews: { main }, + } = context; let gapView; const questionId = node.attrs.id; - const isEditable = context.view.main.props.editable(editable => { + const isEditable = main.props.editable(editable => { return editable; }); @@ -72,12 +75,10 @@ const EditorComponent = ({ node, view, getPos }) => { }; }; - const plugins = [keymap(createKeyBindings()), ...context.app.getPlugins()]; + const plugins = [keymap(createKeyBindings()), ...app.getPlugins()]; finalPlugins = finalPlugins.concat([...plugins]); - const { activeViewId } = context; - useEffect(() => { gapView = new EditorView( { @@ -103,15 +104,15 @@ const EditorComponent = ({ node, view, getPos }) => { ], handleDOMEvents: { mousedown: () => { - context.view.main.dispatch( - context.view.main.state.tr + main.dispatch( + main.state.tr .setMeta('outsideView', questionId) .setSelection( new TextSelection( - context.view.main.state.tr.doc.resolve( + main.state.tr.doc.resolve( getPos() + 2 + - context.view[questionId].state.selection.to, + context.pmViews[questionId].state.selection.to, ), ), ), diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js b/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js index c9f4b2045..0afd56b88 100644 --- a/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js +++ b/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useContext, useRef, useState, useEffect } from 'react'; @@ -35,13 +34,16 @@ const FeedBackInput = styled.input` export default ({ node, view, getPos, readOnly }) => { const context = useContext(WaxContext); + const { + pmViews: { main }, + } = context; const [feedBack, setFeedBack] = useState(' '); const [isFirstRun, setFirstRun] = useState(true); const [typing, setTyping] = useState(false); const feedBackRef = useRef(null); useEffect(() => { - const allNodes = getNodes(context.view.main); + const allNodes = getNodes(main); allNodes.forEach(singleNode => { if (singleNode.node.attrs.id === node.attrs.id) { if (!typing || context.transaction.meta.inputType === 'Redo') { @@ -53,14 +55,14 @@ export default ({ node, view, getPos, readOnly }) => { } } }); - }, [getNodes(context.view.main)]); + }, [getNodes(main)]); const handleKeyDown = e => { setTyping(true); if (e.key === 'Backspace') { - context.view.main.dispatch( - context.view.main.state.tr.setSelection( - TextSelection.create(context.view.main.state.tr.doc, null), + main.dispatch( + main.state.tr.setSelection( + TextSelection.create(main.state.tr.doc, null), ), ); } @@ -75,10 +77,8 @@ export default ({ node, view, getPos, readOnly }) => { }; const onFocus = () => { - context.view.main.dispatch( - context.view.main.state.tr.setSelection( - TextSelection.create(context.view.main.state.tr.doc, null), - ), + main.dispatch( + main.state.tr.setSelection(TextSelection.create(main.state.tr.doc, null)), ); }; diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/components/FillTheGapContainerComponent.js b/wax-prosemirror-services/src/FillTheGapQuestionService/components/FillTheGapContainerComponent.js index af75baa87..acdb1891e 100644 --- a/wax-prosemirror-services/src/FillTheGapQuestionService/components/FillTheGapContainerComponent.js +++ b/wax-prosemirror-services/src/FillTheGapQuestionService/components/FillTheGapContainerComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useContext } from 'react'; import { WaxContext } from 'wax-prosemirror-core'; @@ -21,10 +20,10 @@ const FillTheGapWrapper = styled.div` export default ({ node, view, getPos }) => { const context = useContext(WaxContext); const { - view: { main }, + pmViews: { main }, } = context; - const customProps = context.view.main.props.customValues; + const customProps = main.props.customValues; const isEditable = main.props.editable(editable => { return editable; diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/components/InputComponent.js b/wax-prosemirror-services/src/FillTheGapQuestionService/components/InputComponent.js index 0ce5483c7..6c496ca74 100644 --- a/wax-prosemirror-services/src/FillTheGapQuestionService/components/InputComponent.js +++ b/wax-prosemirror-services/src/FillTheGapQuestionService/components/InputComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useContext, useRef, useState, useEffect } from 'react'; @@ -21,6 +20,10 @@ const AnswerInput = styled.input` export default ({ node, view, getPos }) => { const context = useContext(WaxContext); + const { + pmViews: { main }, + } = context; + const [answer, setAnswer] = useState(' '); const [typing, setTyping] = useState(false); const answerRef = useRef(null); @@ -30,9 +33,9 @@ export default ({ node, view, getPos }) => { const handleKeyDown = e => { setTyping(true); if (e.key === 'Backspace') { - context.view.main.dispatch( - context.view.main.state.tr.setSelection( - TextSelection.create(context.view.main.state.tr.doc, null), + main.dispatch( + main.state.tr.setSelection( + TextSelection.create(main.state.tr.doc, null), ), ); } @@ -47,10 +50,8 @@ export default ({ node, view, getPos }) => { }; const onFocus = () => { - context.view.main.dispatch( - context.view.main.state.tr.setSelection( - TextSelection.create(context.view.main.state.tr.doc, null), - ), + main.dispatch( + main.state.tr.setSelection(TextSelection.create(main.state.tr.doc, null)), ); }; diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceContainerNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceContainerNodeView.js index c00da4041..87d8faffa 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceContainerNodeView.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceContainerNodeView.js @@ -24,8 +24,8 @@ export default class MultipleChoiceContainerNodeView extends AbstractNodeView { update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class MultipleChoiceContainerNodeView extends AbstractNodeView { endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -49,7 +49,7 @@ export default class MultipleChoiceContainerNodeView extends AbstractNodeView { if (event.target.type === 'text') { return true; } - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceNodeView.js index 83f5ee867..7d4f72ac0 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceNodeView.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceNodeView.js @@ -24,8 +24,8 @@ export default class MultipleChoiceNodeView extends AbstractNodeView { update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class MultipleChoiceNodeView extends AbstractNodeView { endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -49,7 +49,7 @@ export default class MultipleChoiceNodeView extends AbstractNodeView { if (event.target.type === 'text') { return true; } - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectContainerNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectContainerNodeView.js index 1e0db8862..ab1754453 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectContainerNodeView.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectContainerNodeView.js @@ -24,8 +24,8 @@ export default class MultipleChoiceSingleCorrectContainerNodeView extends Abstra update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class MultipleChoiceSingleCorrectContainerNodeView extends Abstra endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -49,7 +49,7 @@ export default class MultipleChoiceSingleCorrectContainerNodeView extends Abstra if (event.target.type === 'text') { return true; } - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectNodeView.js index 87956baad..eb1c12b91 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectNodeView.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/MultipleChoiceSingleCorrectNodeView.js @@ -25,8 +25,8 @@ export default class MultipleChoiceSingleCorrectNodeView extends AbstractNodeVie update(node) { // if (!node.sameMarkup(this.node)) return false; this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -35,7 +35,7 @@ export default class MultipleChoiceSingleCorrectNodeView extends AbstractNodeVie endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -50,7 +50,7 @@ export default class MultipleChoiceSingleCorrectNodeView extends AbstractNodeVie if (event.target.type === 'text') { return true; } - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/QuestionMultipleSingleNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/QuestionMultipleSingleNodeView.js index 40bc5a9fd..51fa05cc2 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/QuestionMultipleSingleNodeView.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/QuestionMultipleSingleNodeView.js @@ -24,8 +24,8 @@ export default class QuestionMultipleSingleNodeView extends AbstractNodeView { update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class QuestionMultipleSingleNodeView extends AbstractNodeView { endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -49,7 +49,7 @@ export default class QuestionMultipleSingleNodeView extends AbstractNodeView { if (event.target.type === 'text') { return true; } - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/AnswerComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/AnswerComponent.js index 0ac82c38f..a9cc737b2 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/AnswerComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/AnswerComponent.js @@ -83,11 +83,11 @@ const StyledIconAction = styled(Icon)` export default ({ node, view, getPos }) => { const context = useContext(WaxContext); const { - view: { main }, + pmViews: { main }, } = context; // eslint-disable-next-line react/destructuring-assignment - const customProps = context.view.main.props.customValues; + const customProps = main.props.customValues; const isEditable = main.props.editable(editable => { return editable; @@ -115,26 +115,22 @@ export default ({ node, view, getPos }) => { const addOption = nodeId => { const newAnswerId = uuidv4(); - context.view.main.state.doc.descendants((editorNode, index) => { + main.state.doc.descendants((editorNode, index) => { if (editorNode.type.name === 'multiple_choice_single_correct') { if (editorNode.attrs.id === nodeId) { - context.view.main.dispatch( - context.view.main.state.tr.setSelection( + main.dispatch( + main.state.tr.setSelection( new TextSelection( - context.view.main.state.tr.doc.resolve( - editorNode.nodeSize + index, - ), + main.state.tr.doc.resolve(editorNode.nodeSize + index), ), ), ); - const answerOption = context.view.main.state.config.schema.nodes.multiple_choice_single_correct.create( + const answerOption = main.state.config.schema.nodes.multiple_choice_single_correct.create( { id: newAnswerId }, Fragment.empty, ); - context.view.main.dispatch( - context.view.main.state.tr.replaceSelectionWith(answerOption), - ); + main.dispatch(main.state.tr.replaceSelectionWith(answerOption)); // create Empty Paragraph setTimeout(() => { helpers.createEmptyParagraph(context, newAnswerId); diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/SwitchComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/SwitchComponent.js index 7259ea37b..e29755eff 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/SwitchComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/MultipleChoiceSingleCorrectQuestionService/components/SwitchComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useState, useContext, useEffect } from 'react'; @@ -12,15 +11,14 @@ const CustomSwitch = ({ node, getPos }) => { const [checked, setChecked] = useState(false); const [checkedAnswerMode, setCheckedAnswerMode] = useState(false); const { - view, - view: { main }, + pmViews: { main }, } = context; - const isEditable = view.main.props.editable(editable => { + const isEditable = main.props.editable(editable => { return editable; }); - const customProps = context.view.main.props.customValues; + const customProps = main.props.customValues; useEffect(() => { const allNodes = getNodes(main); diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/QuestionNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/QuestionNodeView.js index de265aa47..9430d97a5 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/QuestionNodeView.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/QuestionNodeView.js @@ -24,8 +24,8 @@ export default class QuestionNodeView extends AbstractNodeView { update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class QuestionNodeView extends AbstractNodeView { endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -49,7 +49,7 @@ export default class QuestionNodeView extends AbstractNodeView { if (event.target.type === 'text') { return true; } - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/QuestionTrueFalseNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/QuestionTrueFalseNodeView.js index f373d41b5..8dd46b286 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/QuestionTrueFalseNodeView.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/QuestionTrueFalseNodeView.js @@ -24,8 +24,8 @@ export default class QuestionTrueFalseNodeView extends AbstractNodeView { update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class QuestionTrueFalseNodeView extends AbstractNodeView { endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -49,7 +49,7 @@ export default class QuestionTrueFalseNodeView extends AbstractNodeView { if (event.target.type === 'text') { return true; } - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseContainerNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseContainerNodeView.js index f5f145d38..d5d916320 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseContainerNodeView.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseContainerNodeView.js @@ -24,8 +24,8 @@ export default class TrueFalseContainerNodeView extends AbstractNodeView { update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class TrueFalseContainerNodeView extends AbstractNodeView { endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -49,7 +49,7 @@ export default class TrueFalseContainerNodeView extends AbstractNodeView { if (event.target.type === 'text') { return true; } - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseNodeView.js index ad6eb44d8..9720ca22b 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseNodeView.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/TrueFalseNodeView.js @@ -24,8 +24,8 @@ export default class TrueFalseNodeView extends AbstractNodeView { update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class TrueFalseNodeView extends AbstractNodeView { endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -49,7 +49,7 @@ export default class TrueFalseNodeView extends AbstractNodeView { if (event.target.type === 'text') { return true; } - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/AnswerComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/AnswerComponent.js index ace315a66..63acff33a 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/AnswerComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/AnswerComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useContext } from 'react'; import styled from 'styled-components'; @@ -84,10 +83,10 @@ const StyledIconAction = styled(Icon)` export default ({ node, view, getPos }) => { const context = useContext(WaxContext); const { - view: { main }, + pmViews: { main }, } = context; - const customProps = context.view.main.props.customValues; + const customProps = main.props.customValues; const isEditable = main.props.editable(editable => { return editable; @@ -115,26 +114,22 @@ export default ({ node, view, getPos }) => { const addOption = nodeId => { const newAnswerId = uuidv4(); - context.view.main.state.doc.descendants((editorNode, index) => { + main.state.doc.descendants((editorNode, index) => { if (editorNode.type.name === 'true_false') { if (editorNode.attrs.id === nodeId) { - context.view.main.dispatch( - context.view.main.state.tr.setSelection( + main.dispatch( + main.state.tr.setSelection( new TextSelection( - context.view.main.state.tr.doc.resolve( - editorNode.nodeSize + index, - ), + main.state.tr.doc.resolve(editorNode.nodeSize + index), ), ), ); - const answerOption = context.view.main.state.config.schema.nodes.true_false.create( + const answerOption = main.state.config.schema.nodes.true_false.create( { id: newAnswerId }, Fragment.empty, ); - context.view.main.dispatch( - context.view.main.state.tr.replaceSelectionWith(answerOption), - ); + main.dispatch(main.state.tr.replaceSelectionWith(answerOption)); // create Empty Paragraph setTimeout(() => { helpers.createEmptyParagraph(context, newAnswerId); diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/SwitchComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/SwitchComponent.js index 1c85aec23..1d7c9b5b0 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/SwitchComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseQuestionService/components/SwitchComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useState, useContext, useEffect } from 'react'; @@ -12,13 +11,12 @@ const CustomSwitch = ({ node, getPos }) => { const [checkedAnswerMode, setCheckedAnswerMode] = useState(false); const { - view, - view: { main }, + pmViews: { main }, } = context; - const customProps = context.view.main.props.customValues; + const customProps = main.props.customValues; - const isEditable = view.main.props.editable(editable => { + const isEditable = main.props.editable(editable => { return editable; }); diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/QuestionTrueFalseSingleNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/QuestionTrueFalseSingleNodeView.js index 9496fe060..3da377957 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/QuestionTrueFalseSingleNodeView.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/QuestionTrueFalseSingleNodeView.js @@ -24,8 +24,8 @@ export default class QuestionTrueFalseSingleNodeView extends AbstractNodeView { update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class QuestionTrueFalseSingleNodeView extends AbstractNodeView { endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -49,7 +49,7 @@ export default class QuestionTrueFalseSingleNodeView extends AbstractNodeView { if (event.target.type === 'text') { return true; } - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectContainerNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectContainerNodeView.js index d8a8ed1c1..5d61b3852 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectContainerNodeView.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectContainerNodeView.js @@ -24,8 +24,8 @@ export default class TrueFalseSingleCorrectContainerNodeView extends AbstractNod update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class TrueFalseSingleCorrectContainerNodeView extends AbstractNod endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -49,7 +49,7 @@ export default class TrueFalseSingleCorrectContainerNodeView extends AbstractNod if (event.target.type === 'text') { return true; } - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectNodeView.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectNodeView.js index d57375c18..c7319c19e 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectNodeView.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/TrueFalseSingleCorrectNodeView.js @@ -24,8 +24,8 @@ export default class TrueFalseSingleCorrectNodeView extends AbstractNodeView { update(node) { this.node = node; - if (this.context.view[node.attrs.id]) { - const { state } = this.context.view[node.attrs.id]; + if (this.context.pmViews[node.attrs.id]) { + const { state } = this.context.pmViews[node.attrs.id]; const start = node.content.findDiffStart(state.doc.content); if (start != null) { let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content); @@ -34,7 +34,7 @@ export default class TrueFalseSingleCorrectNodeView extends AbstractNodeView { endA += overlap; endB += overlap; } - this.context.view[node.attrs.id].dispatch( + this.context.pmViews[node.attrs.id].dispatch( state.tr .replace(start, endB, node.slice(start, endA)) .setMeta('fromOutside', true), @@ -49,7 +49,7 @@ export default class TrueFalseSingleCorrectNodeView extends AbstractNodeView { if (event.target.type === 'text') { return true; } - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } } diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/AnswerComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/AnswerComponent.js index 65d103b75..8a097de48 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/AnswerComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/AnswerComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useContext } from 'react'; import styled from 'styled-components'; @@ -84,10 +83,10 @@ const StyledIconAction = styled(Icon)` export default ({ node, view, getPos }) => { const context = useContext(WaxContext); const { - view: { main }, + pmViews: { main }, } = context; - const customProps = context.view.main.props.customValues; + const customProps = main.props.customValues; const isEditable = main.props.editable(editable => { return editable; @@ -115,26 +114,22 @@ export default ({ node, view, getPos }) => { const addOption = nodeId => { const newAnswerId = uuidv4(); - context.view.main.state.doc.descendants((editorNode, index) => { + main.state.doc.descendants((editorNode, index) => { if (editorNode.type.name === 'true_false_single_correct') { if (editorNode.attrs.id === nodeId) { - context.view.main.dispatch( - context.view.main.state.tr.setSelection( + main.dispatch( + main.state.tr.setSelection( new TextSelection( - context.view.main.state.tr.doc.resolve( - editorNode.nodeSize + index, - ), + main.state.tr.doc.resolve(editorNode.nodeSize + index), ), ), ); - const answerOption = context.view.main.state.config.schema.nodes.true_false_single_correct.create( + const answerOption = main.state.config.schema.nodes.true_false_single_correct.create( { id: newAnswerId }, Fragment.empty, ); - context.view.main.dispatch( - context.view.main.state.tr.replaceSelectionWith(answerOption), - ); + main.dispatch(main.state.tr.replaceSelectionWith(answerOption)); // create Empty Paragraph setTimeout(() => { helpers.createEmptyParagraph(context, newAnswerId); diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/SwitchComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/SwitchComponent.js index fd6b91985..7dcb3653d 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/SwitchComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/TrueFalseSingleCorrectQuestionService/components/SwitchComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useState, useContext, useEffect } from 'react'; @@ -13,13 +12,12 @@ const CustomSwitch = ({ node, getPos }) => { const [checkedAnswerMode, setCheckedAnswerMode] = useState(false); const { - view, - view: { main }, + pmViews: { main }, } = context; - const customProps = context.view.main.props.customValues; + const customProps = main.props.customValues; - const isEditable = view.main.props.editable(editable => { + const isEditable = main.props.editable(editable => { return editable; }); diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/AnswerComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/AnswerComponent.js index 8e3a4e730..14c6c4233 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/AnswerComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/AnswerComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useContext } from 'react'; import styled from 'styled-components'; @@ -84,10 +83,10 @@ const StyledIconAction = styled(Icon)` export default ({ node, view, getPos }) => { const context = useContext(WaxContext); const { - view: { main }, + pmViews: { main }, } = context; - const customProps = context.view.main.props.customValues; + const customProps = main.props.customValues; const isEditable = main.props.editable(editable => { return editable; @@ -115,26 +114,22 @@ export default ({ node, view, getPos }) => { const addOption = nodeId => { const newAnswerId = uuidv4(); - context.view.main.state.doc.descendants((editorNode, index) => { + main.state.doc.descendants((editorNode, index) => { if (editorNode.type.name === 'multiple_choice') { if (editorNode.attrs.id === nodeId) { - context.view.main.dispatch( - context.view.main.state.tr.setSelection( + main.dispatch( + main.state.tr.setSelection( new TextSelection( - context.view.main.state.tr.doc.resolve( - editorNode.nodeSize + index, - ), + main.state.tr.doc.resolve(editorNode.nodeSize + index), ), ), ); - const answerOption = context.view.main.state.config.schema.nodes.multiple_choice.create( + const answerOption = main.state.config.schema.nodes.multiple_choice.create( { id: newAnswerId }, Fragment.empty, ); - context.view.main.dispatch( - context.view.main.state.tr.replaceSelectionWith(answerOption), - ); + main.dispatch(main.state.tr.replaceSelectionWith(answerOption)); // create Empty Paragraph setTimeout(() => { helpers.createEmptyParagraph(context, newAnswerId); diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/EditorComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/EditorComponent.js index 81ff309ef..d95a0be47 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/EditorComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/EditorComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useContext, useRef, useEffect } from 'react'; @@ -57,9 +56,13 @@ const EditorComponent = ({ node, view, getPos }) => { const editorRef = useRef(); const context = useContext(WaxContext); + const { + app, + pmViews: { main }, + } = context; let questionView; const questionId = node.attrs.id; - const isEditable = context.view.main.props.editable(editable => { + const isEditable = main.props.editable(editable => { return editable; }); @@ -80,7 +83,7 @@ const EditorComponent = ({ node, view, getPos }) => { }; }; - const plugins = [keymap(createKeyBindings()), ...context.app.getPlugins()]; + const plugins = [keymap(createKeyBindings()), ...app.getPlugins()]; // eslint-disable-next-line no-shadow const createPlaceholder = placeholder => { @@ -110,24 +113,24 @@ const EditorComponent = ({ node, view, getPos }) => { disallowedTools: ['Images', 'Lists', 'lift', 'MultipleChoice'], handleDOMEvents: { mousedown: () => { - context.view.main.dispatch( - context.view.main.state.tr + main.dispatch( + main.state.tr .setMeta('outsideView', questionId) .setSelection( new TextSelection( - context.view.main.state.tr.doc.resolve( + main.state.tr.doc.resolve( getPos() + 2 + - context.view[questionId].state.selection.to, + context.pmViews[questionId].state.selection.to, ), ), ), ); - // context.view[activeViewId].dispatch( - // context.view[activeViewId].state.tr.setSelection( + // context.pmViews[activeViewId].dispatch( + // context.pmViews[activeViewId].state.tr.setSelection( // TextSelection.between( - // context.view[activeViewId].state.selection.$anchor, - // context.view[activeViewId].state.selection.$head, + // context.pmViews[activeViewId].state.selection.$anchor, + // context.pmViews[activeViewId].state.selection.$head, // ), // ), // ); diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/FeedbackComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/FeedbackComponent.js index b7b59b96c..5ff3ac5cb 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/FeedbackComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/FeedbackComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useContext, useRef, useState, useEffect } from 'react'; @@ -33,13 +32,18 @@ const FeedBackInput = styled.input` export default ({ node, view, getPos, readOnly }) => { const context = useContext(WaxContext); + const { + app, + pmViews: { main }, + } = context; + const [feedBack, setFeedBack] = useState(' '); const [isFirstRun, setFirstRun] = useState(true); const [typing, setTyping] = useState(false); const feedBackRef = useRef(null); useEffect(() => { - const allNodes = getNodes(context.view.main); + const allNodes = getNodes(main); allNodes.forEach(singleNode => { if (singleNode.node.attrs.id === node.attrs.id) { if (!typing || context.transaction.meta.inputType === 'Redo') { @@ -51,14 +55,14 @@ export default ({ node, view, getPos, readOnly }) => { } } }); - }, [getNodes(context.view.main)]); + }, [getNodes(main)]); const handleKeyDown = e => { setTyping(true); if (e.key === 'Backspace') { - context.view.main.dispatch( - context.view.main.state.tr.setSelection( - TextSelection.create(context.view.main.state.tr.doc, null), + main.dispatch( + main.state.tr.setSelection( + TextSelection.create(main.state.tr.doc, null), ), ); } @@ -69,11 +73,11 @@ export default ({ node, view, getPos, readOnly }) => { }; const saveFeedBack = () => { - const allNodes = getNodes(context.view.main); + const allNodes = getNodes(main); allNodes.forEach(singleNode => { if (singleNode.node.attrs.id === node.attrs.id) { - context.view.main.dispatch( - context.view.main.state.tr.setNodeMarkup(getPos(), undefined, { + main.dispatch( + main.state.tr.setNodeMarkup(getPos(), undefined, { ...singleNode.node.attrs, feedback: feedBack, }), @@ -85,10 +89,8 @@ export default ({ node, view, getPos, readOnly }) => { }; const onFocus = () => { - context.view.main.dispatch( - context.view.main.state.tr.setSelection( - TextSelection.create(context.view.main.state.tr.doc, null), - ), + main.dispatch( + main.state.tr.setSelection(TextSelection.create(main.state.tr.doc, null)), ); }; diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js index 74e41034c..eee47af1e 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/QuestionEditorComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useContext, useRef, useEffect } from 'react'; @@ -61,9 +60,13 @@ const QuestionEditorComponent = ({ node, view, getPos }) => { const editorRef = useRef(); const context = useContext(WaxContext); + const { + app, + pmViews: { main }, + } = context; let questionView; const questionId = node.attrs.id; - const isEditable = context.view.main.props.editable(editable => { + const isEditable = main.props.editable(editable => { return editable; }); @@ -115,7 +118,7 @@ const QuestionEditorComponent = ({ node, view, getPos }) => { }; }; - const plugins = [keymap(createKeyBindings()), ...context.app.getPlugins()]; + const plugins = [keymap(createKeyBindings()), ...app.getPlugins()]; // eslint-disable-next-line no-shadow const createPlaceholder = placeholder => { @@ -146,15 +149,15 @@ const QuestionEditorComponent = ({ node, view, getPos }) => { handleDOMEvents: { mousedown: () => { context.updateView({}, questionId); - context.view.main.dispatch( - context.view.main.state.tr + main.dispatch( + main.state.tr .setMeta('outsideView', questionId) .setSelection( new TextSelection( - context.view.main.state.tr.doc.resolve( + main.state.tr.doc.resolve( getPos() + 2 + - context.view[questionId].state.selection.to, + context.pmViews[questionId].state.selection.to, ), ), ), diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js index b0887514e..a046213c5 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/SwitchComponent.js @@ -1,4 +1,3 @@ -/* eslint-disable react/destructuring-assignment */ /* eslint-disable react/prop-types */ import React, { useState, useContext, useEffect } from 'react'; @@ -11,13 +10,13 @@ const CustomSwitch = ({ node, getPos }) => { const [checked, setChecked] = useState(false); const [checkedAnswerMode, setCheckedAnswerMode] = useState(false); const { - view, - view: { main }, + pmViews, + pmViews: { main }, } = context; - const customProps = context.view.main.props.customValues; + const customProps = main.props.customValues; - const isEditable = view.main.props.editable(editable => { + const isEditable = main.props.editable(editable => { return editable; }); diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/ToolBarBtn.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/ToolBarBtn.js index 84090be50..ceec5b108 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/ToolBarBtn.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/ToolBarBtn.js @@ -16,7 +16,7 @@ const ToolBarBtn = ({ view = {}, item }) => { const { icon, label, select, title } = item; const context = useContext(WaxContext); const { - view: { main }, + pmViews: { main }, activeView, } = useContext(WaxContext); @@ -38,7 +38,7 @@ const ToolBarBtn = ({ view = {}, item }) => { label={label} onMouseDown={e => { e.preventDefault(); - item.run(context.view.main, context); + item.run(main, context); }} title={title} /> diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/helpers/helpers.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/helpers/helpers.js index 869a539e4..c2ca1ce75 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/helpers/helpers.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/helpers/helpers.js @@ -5,30 +5,30 @@ import { Fragment } from 'prosemirror-model'; import { findWrapping } from 'prosemirror-transform'; const createEmptyParagraph = (context, newAnswerId) => { - if (context.view[newAnswerId]) { - context.view[newAnswerId].dispatch( - context.view[newAnswerId].state.tr.setSelection( + if (context.pmViews[newAnswerId]) { + context.pmViews[newAnswerId].dispatch( + context.pmViews[newAnswerId].state.tr.setSelection( TextSelection.between( - context.view[newAnswerId].state.selection.$anchor, - context.view[newAnswerId].state.selection.$head, + context.pmViews[newAnswerId].state.selection.$anchor, + context.pmViews[newAnswerId].state.selection.$head, ), ), ); - if (context.view[newAnswerId].dispatch) { - const type = context.view.main.state.schema.nodes.paragraph; - context.view[newAnswerId].dispatch( - context.view[newAnswerId].state.tr.insert(0, type.create()), + if (context.pmViews[newAnswerId].dispatch) { + const type = context.pmViews.main.state.schema.nodes.paragraph; + context.pmViews[newAnswerId].dispatch( + context.pmViews[newAnswerId].state.tr.insert(0, type.create()), ); } - context.view[newAnswerId].dispatch( - context.view[newAnswerId].state.tr.setSelection( + context.pmViews[newAnswerId].dispatch( + context.pmViews[newAnswerId].state.tr.setSelection( TextSelection.between( - context.view[newAnswerId].state.selection.$anchor, - context.view[newAnswerId].state.selection.$head, + context.pmViews[newAnswerId].state.selection.$anchor, + context.pmViews[newAnswerId].state.selection.$head, ), ), ); - context.view[newAnswerId].focus(); + context.pmViews[newAnswerId].focus(); } }; @@ -79,7 +79,7 @@ const createOptions = (main, context, parentType, questionType, answerType) => { tr.replaceSelectionWith(secondOption); dispatch(tr); setTimeout(() => { - context.view[question.attrs.id].focus(); + context.pmViews[question.attrs.id].focus(); // createEmptyParagraph(context, firstOption.attrs.id); // createEmptyParagraph(context, secondOption.attrs.id); // createEmptyParagraph(context, question.attrs.id); diff --git a/wax-prosemirror-services/src/PortalService/AbstractNodeView.js b/wax-prosemirror-services/src/PortalService/AbstractNodeView.js index 37304f52e..9d50b0c70 100644 --- a/wax-prosemirror-services/src/PortalService/AbstractNodeView.js +++ b/wax-prosemirror-services/src/PortalService/AbstractNodeView.js @@ -36,7 +36,7 @@ export default class AbstractNodeView { } stopEvent(event) { - const innerView = this.context.view[this.node.attrs.id]; + const innerView = this.context.pmViews[this.node.attrs.id]; return innerView && innerView.dom.contains(event.target); } diff --git a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropComponent.js b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropComponent.js index d92127eb1..30bb239e4 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropComponent.js +++ b/wax-prosemirror-services/src/WaxToolGroups/MultipleDropDownToolGroupService/DropComponent.js @@ -43,7 +43,7 @@ const DropComponent = ({ title, view, tools }) => { const { activeView, activeViewId, - view: { main }, + pmViews: { main }, } = context; const { state } = view; -- GitLab