Skip to content
Snippets Groups Projects
Commit 46b300d3 authored by chris's avatar chris
Browse files

move dependency and new helper methods

parent 2948afd3
No related branches found
No related tags found
1 merge request!64Notes
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
"react-dom": "^16.8.6", "react-dom": "^16.8.6",
"react-dropdown": "^1.6.2", "react-dropdown": "^1.6.2",
"styled-components": "^4.2.0", "styled-components": "^4.2.0",
"react-panelgroup": "^1.0.10",
"uuid": "^3.3.2" "uuid": "^3.3.2"
} }
} }
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"dependencies": { "dependencies": {
"@pubsweet/ui-toolkit": "^2.2.13" "@pubsweet/ui-toolkit": "^2.2.13",
"react-panelgroup": "^1.0.10"
} }
} }
...@@ -150,7 +150,7 @@ const onResizeEnd = arr => { ...@@ -150,7 +150,7 @@ const onResizeEnd = arr => {
}; };
const hasNotes = main => { const hasNotes = main => {
const notes = DocumentHelpers.findBlockNodes( const notes = DocumentHelpers.findChildrenByType(
main.state.doc, main.state.doc,
main.state.schema.nodes.footnote, main.state.schema.nodes.footnote,
true true
...@@ -177,7 +177,7 @@ const EditoriaLayout = ({ editor }) => { ...@@ -177,7 +177,7 @@ const EditoriaLayout = ({ editor }) => {
if (main) { if (main) {
const notes = hasNotes(main); const notes = hasNotes(main);
if (notes.length) AreasWithNotes = withNotes(editor); if (notes.length) AreasWithNotes = withNotes();
} }
return ( return (
......
...@@ -2,7 +2,7 @@ const footnote = { ...@@ -2,7 +2,7 @@ const footnote = {
group: "inline", group: "inline",
content: "paragraph+", content: "paragraph+",
inline: true, inline: true,
atom: true, // atom: true,
toDOM: () => ["footnote"], toDOM: () => ["footnote"],
parseDOM: [{ tag: "footnote" }] parseDOM: [{ tag: "footnote" }]
}; };
......
...@@ -23,7 +23,7 @@ export default () => { ...@@ -23,7 +23,7 @@ export default () => {
}; };
const updateNotes = view => { const updateNotes = view => {
if (view) { if (view) {
return DocumentHelpers.findBlockNodes( return DocumentHelpers.findChildrenByType(
view.state.doc, view.state.doc,
view.state.schema.nodes.footnote, view.state.schema.nodes.footnote,
true true
......
...@@ -34,18 +34,30 @@ export const flatten = (node, descend = true) => { ...@@ -34,18 +34,30 @@ export const flatten = (node, descend = true) => {
return result; 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) => { const findChildren = (node, predicate, descend) => {
if (!node) { if (!node) {
throw new Error('Invalid "node" parameter'); throw new Error('Invalid "node" parameter');
} else if (!predicate) { } else if (!predicate) {
throw new Error('Invalid "predicate" parameter'); throw new Error('Invalid "predicate" parameter');
} }
return flatten(node, descend).filter(child => { return flatten(node, descend).filter(child => predicate(child.node));
return child.node.type.name === "footnote" ? child.node : false;
});
}; };
const findBlockNodes = (node, descend) => { const findInlineNodes = (node, descend) => {
return findChildren(node, child => child.isBlock, descend); return findChildren(node, child => child.isInline, descend);
};
export default {
findMark,
findBlockNodes,
findChildrenByType,
findInlineNodes
}; };
export default { findMark, findBlockNodes };
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment