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