diff --git a/wax-prosemirror-services/src/OENContainersService/OENContainersService.js b/wax-prosemirror-services/src/OENContainersService/OENContainersService.js index e255bb05ca01f82aaba40a671c823c711daeef05..9ac251fed3b4a0c0020a6e31f442343abef1103a 100644 --- a/wax-prosemirror-services/src/OENContainersService/OENContainersService.js +++ b/wax-prosemirror-services/src/OENContainersService/OENContainersService.js @@ -52,6 +52,7 @@ class OENContainersService extends Service { {}, { nodeType: 'oen_container', + findInParent: true, markType: '', followCursor: false, selection: false, diff --git a/wax-prosemirror-services/src/OverlayService/usePosition.js b/wax-prosemirror-services/src/OverlayService/usePosition.js index fc47e4b7c8f478e0d673b12251f5325e4d1ed438..c883feea29e284c35fb18f4a8552d17b7cd7b21f 100644 --- a/wax-prosemirror-services/src/OverlayService/usePosition.js +++ b/wax-prosemirror-services/src/OverlayService/usePosition.js @@ -21,7 +21,7 @@ export default options => { }); let mark = {}; - let node = {}; + let node = ''; /* Sets Default position at the end of the annotation. You can overwrite the default position in your component. Check: wax-prosemirror-components/src/components/comments/CommentBubbleComponent.js @@ -53,11 +53,11 @@ export default options => { }; const displayOnNode = (focusedView, overlayOptions) => { - const { nodeType, followCursor } = overlayOptions; + const { nodeType, followCursor, findInParent } = overlayOptions; const PMnode = focusedView.state.schema.nodes[nodeType]; - node = DocumentHelpers.findNode(focusedView.state, PMnode); - console.log('here', node, PMnode); + node = DocumentHelpers.findNode(focusedView.state, PMnode, findInParent); + console.log(node); if (!isObject(node)) return defaultOverlay; const { from, to } = followCursor ? focusedView.state.selection : node; diff --git a/wax-prosemirror-utilities/src/document/DocumentHelpers.js b/wax-prosemirror-utilities/src/document/DocumentHelpers.js index 2420d369a9bdfed07ca25e8d6cf402aec22f6394..c5db8c3be33cad5dd20d7191648745a5c8c9aa82 100644 --- a/wax-prosemirror-utilities/src/document/DocumentHelpers.js +++ b/wax-prosemirror-utilities/src/document/DocumentHelpers.js @@ -27,10 +27,25 @@ const findMark = (state, PMmark, toArr = false) => { return markFound; }; -const findNode = (state, PMnode, parent = true) => { +const findNode = (state, PMnode, findInParent) => { let nodeFound; - if (parent) { - + if (findInParent) { + state.doc.nodesBetween( + state.selection.from, + state.selection.to, + (node, pos) => { + if ( + node.type.name === 'oen_container' && + node.attrs.class === 'outline' + ) { + nodeFound = { + from: state.selection.from, + to: state.selection.to, + node, + }; + } + }, + ); } else if ( state.selection.node && state.selection.node.type.name === PMnode.name