From ea91d2cfeaaa9884f0fdc8bf2a7bf4d06487864d Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Tue, 15 Jun 2021 12:14:03 +0300
Subject: [PATCH] fix footnotes

---
 editors/demo/src/Editoria/Editoria.js            |  2 +-
 editors/demo/src/Editors.js                      |  2 +-
 wax-prosemirror-core/src/Wax.js                  | 13 ++++---------
 wax-prosemirror-core/src/WaxView.js              |  4 ++--
 wax-prosemirror-schema/src/nodes/footNoteNode.js |  4 +---
 5 files changed, 9 insertions(+), 16 deletions(-)

diff --git a/editors/demo/src/Editoria/Editoria.js b/editors/demo/src/Editoria/Editoria.js
index 5fa4de110..c6e78c65d 100644
--- a/editors/demo/src/Editoria/Editoria.js
+++ b/editors/demo/src/Editoria/Editoria.js
@@ -53,7 +53,7 @@ const Editoria = () => {
           layout={layout}
           onChange={debounce(source => {
             console.log(source);
-          }, 3000)}
+          }, 200)}
           onBlur={source => console.log(source)}
           user={user}
         />
diff --git a/editors/demo/src/Editors.js b/editors/demo/src/Editors.js
index 977ed5cc4..fa52e3550 100644
--- a/editors/demo/src/Editors.js
+++ b/editors/demo/src/Editors.js
@@ -54,7 +54,7 @@ const Editors = () => {
       case 'ncbi':
         break;
       default:
-        return <HHMI />;
+        return <Editoria />;
     }
   };
 
diff --git a/wax-prosemirror-core/src/Wax.js b/wax-prosemirror-core/src/Wax.js
index e76225864..a31235999 100644
--- a/wax-prosemirror-core/src/Wax.js
+++ b/wax-prosemirror-core/src/Wax.js
@@ -1,6 +1,5 @@
 /* eslint react/prop-types: 0 */
 import React, { useEffect, useState } from 'react';
-import debounce from 'lodash/debounce';
 import { each } from 'lodash';
 import { DOMSerializer } from 'prosemirror-model';
 
@@ -51,10 +50,10 @@ const Wax = props => {
   if (!application) return null;
   const WaxOnchange = onChange || (v => true);
 
-  const finalOnChange = schema => content => {
+  const finalOnChange = content => {
     /* HACK  alter toDOM of footnote, because of how PM treats inline nodes
       with content */
-
+    const { schema } = application.schema;
     const notes = [];
     each(schema.nodes, node => {
       if (node.groups.includes('notes')) notes.push(node);
@@ -62,10 +61,8 @@ const Wax = props => {
 
     if (notes.length > 0) {
       notes.forEach(note => {
-        const old = schema.nodes[note.name].spec.toDOM;
-        schema.nodes[note.name].spec.toDOM = node => {
+        schema.nodes.footnote.spec.toDOM = node => {
           // eslint-disable-next-line prefer-rest-params
-          old.apply(this);
           if (node) return [note.name, node.attrs, 0];
         };
       });
@@ -80,10 +77,8 @@ const Wax = props => {
 
     if (notes.length > 0) {
       notes.forEach(note => {
-        const old = schema.nodes[note.name].spec.toDOM;
-        schema.nodes[note.name].spec.toDOM = node => {
+        schema.nodes.footnote.spec.toDOM = node => {
           // eslint-disable-next-line prefer-rest-params
-          old.apply(this);
           if (node) return [note.name, node.attrs];
         };
       });
diff --git a/wax-prosemirror-core/src/WaxView.js b/wax-prosemirror-core/src/WaxView.js
index f4749b4b3..517051f11 100644
--- a/wax-prosemirror-core/src/WaxView.js
+++ b/wax-prosemirror-core/src/WaxView.js
@@ -130,11 +130,11 @@ export default props => {
     }
     if (targetFormat === 'JSON') {
       if (view.state.doc !== previousDoc || tr.getMeta('forceUpdate'))
-        props.onChange(schema)(state.doc.toJSON());
+        props.onChange(state.doc.toJSON());
     } else {
       // eslint-disable-next-line no-lonely-if
       if (view.state.doc !== previousDoc || tr.getMeta('forceUpdate'))
-        props.onChange(schema)(state.doc.content);
+        props.onChange(state.doc.content);
     }
   };
 
diff --git a/wax-prosemirror-schema/src/nodes/footNoteNode.js b/wax-prosemirror-schema/src/nodes/footNoteNode.js
index ab89aa79a..c90c48dc6 100644
--- a/wax-prosemirror-schema/src/nodes/footNoteNode.js
+++ b/wax-prosemirror-schema/src/nodes/footNoteNode.js
@@ -7,9 +7,7 @@ const footnote = {
     id: { default: '' },
   },
   toDOM: node => {
-    if (node) {
-      return ['footnote', node.attrs];
-    }
+    return ['footnote', node.attrs];
   },
   parseDOM: [
     {
-- 
GitLab