diff --git a/wax-prosemirror-components/package.json b/wax-prosemirror-components/package.json index 5aacbee1848c826dcf1b5b35c3762e676db32014..c90be2bbe23c9ed8ae1e3ed757ca6487b8ff1d43 100644 --- a/wax-prosemirror-components/package.json +++ b/wax-prosemirror-components/package.json @@ -17,7 +17,6 @@ "react-dom": "^16.8.6", "react-dropdown": "^1.6.2", "styled-components": "^4.2.0", - "react-panelgroup": "^1.0.10", "uuid": "^3.3.2" } } diff --git a/wax-prosemirror-layouts/package.json b/wax-prosemirror-layouts/package.json index c094c9cc90a5c40faca79e049a4a720161887021..964c87924ca5921e575a0f2516d9e6caec4523c0 100644 --- a/wax-prosemirror-layouts/package.json +++ b/wax-prosemirror-layouts/package.json @@ -9,6 +9,7 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { - "@pubsweet/ui-toolkit": "^2.2.13" + "@pubsweet/ui-toolkit": "^2.2.13", + "react-panelgroup": "^1.0.10" } } diff --git a/wax-prosemirror-layouts/src/layouts/EditoriaLayout.js b/wax-prosemirror-layouts/src/layouts/EditoriaLayout.js index 35faa61d7f1cd2ceef69df524a6e60aae00d1685..b251408be5cb2a8df7a652f73efcd2595d19ff45 100644 --- a/wax-prosemirror-layouts/src/layouts/EditoriaLayout.js +++ b/wax-prosemirror-layouts/src/layouts/EditoriaLayout.js @@ -150,7 +150,7 @@ const onResizeEnd = arr => { }; const hasNotes = main => { - const notes = DocumentHelpers.findBlockNodes( + const notes = DocumentHelpers.findChildrenByType( main.state.doc, main.state.schema.nodes.footnote, true @@ -177,7 +177,7 @@ const EditoriaLayout = ({ editor }) => { if (main) { const notes = hasNotes(main); - if (notes.length) AreasWithNotes = withNotes(editor); + if (notes.length) AreasWithNotes = withNotes(); } return ( diff --git a/wax-prosemirror-schema/src/nodes/footNoteNode.js b/wax-prosemirror-schema/src/nodes/footNoteNode.js index dd495bda633764944a32729ff81a432766154003..45267711a1517be8da7da538510be03134b1f719 100644 --- a/wax-prosemirror-schema/src/nodes/footNoteNode.js +++ b/wax-prosemirror-schema/src/nodes/footNoteNode.js @@ -2,7 +2,7 @@ const footnote = { group: "inline", content: "paragraph+", inline: true, - atom: true, + // atom: true, toDOM: () => ["footnote"], parseDOM: [{ tag: "footnote" }] }; diff --git a/wax-prosemirror-services/src/NoteService/NoteComponent.js b/wax-prosemirror-services/src/NoteService/NoteComponent.js index 14c0483ed3e402b1c76afc81f68e2db066050b49..018446cf5d35927756f0a60e425427909b84a64f 100644 --- a/wax-prosemirror-services/src/NoteService/NoteComponent.js +++ b/wax-prosemirror-services/src/NoteService/NoteComponent.js @@ -23,7 +23,7 @@ export default () => { }; const updateNotes = view => { if (view) { - return DocumentHelpers.findBlockNodes( + return DocumentHelpers.findChildrenByType( view.state.doc, view.state.schema.nodes.footnote, true diff --git a/wax-prosemirror-utilities/src/document/DocumentHelpers.js b/wax-prosemirror-utilities/src/document/DocumentHelpers.js index 5fb8e8e90c90dd00bd878ca9578a7eb817b98eba..36fedfeb16e1646aae1f6538a3c825f08c8cf333 100644 --- a/wax-prosemirror-utilities/src/document/DocumentHelpers.js +++ b/wax-prosemirror-utilities/src/document/DocumentHelpers.js @@ -34,18 +34,30 @@ export const flatten = (node, descend = true) => { return result; }; +const findBlockNodes = (node, descend) => { + return findChildren(node, child => child.isBlock, descend); +}; + +const findChildrenByType = (node, nodeType, descend) => { + return findChildren(node, child => child.type === nodeType, descend); +}; + const findChildren = (node, predicate, descend) => { if (!node) { throw new Error('Invalid "node" parameter'); } else if (!predicate) { throw new Error('Invalid "predicate" parameter'); } - return flatten(node, descend).filter(child => { - return child.node.type.name === "footnote" ? child.node : false; - }); + return flatten(node, descend).filter(child => predicate(child.node)); }; -const findBlockNodes = (node, descend) => { - return findChildren(node, child => child.isBlock, descend); +const findInlineNodes = (node, descend) => { + return findChildren(node, child => child.isInline, descend); +}; + +export default { + findMark, + findBlockNodes, + findChildrenByType, + findInlineNodes }; -export default { findMark, findBlockNodes };