From 46b300d337eadcfeafa2ec01695d7532cf0f1f00 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Thu, 27 Feb 2020 13:16:43 +0200 Subject: [PATCH] move dependency and new helper methods --- wax-prosemirror-components/package.json | 1 - wax-prosemirror-layouts/package.json | 3 ++- .../src/layouts/EditoriaLayout.js | 4 ++-- .../src/nodes/footNoteNode.js | 2 +- .../src/NoteService/NoteComponent.js | 2 +- .../src/document/DocumentHelpers.js | 24 ++++++++++++++----- 6 files changed, 24 insertions(+), 12 deletions(-) diff --git a/wax-prosemirror-components/package.json b/wax-prosemirror-components/package.json index 5aacbee18..c90be2bbe 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 c094c9cc9..964c87924 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 35faa61d7..b251408be 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 dd495bda6..45267711a 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 14c0483ed..018446cf5 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 5fb8e8e90..36fedfeb1 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 }; -- GitLab