diff --git a/editors/demo/src/Editoria/Editoria.js b/editors/demo/src/Editoria/Editoria.js index 5fa4de11075cc179bd514dfd0ef7b242cbf5456b..c6e78c65d83d1ef0a00175204df77b65496e2358 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 977ed5cc4dbf7c694157ede01a713d4b2f5b983e..fa52e35509b57dc1e5f1d06514566f8cc480bbe7 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 e76225864f8965cff8ba4b86da2894059cffa94b..a312359990fbdb3b600a3935b35f36a44373c327 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 f4749b4b34c97576b3a6e39bc52a7856677803a7..517051f11e283bb85bbe8bf5784c2598d297ce9b 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 ab89aa79a54f3080f52944c39e286df3c4a637d3..c90c48dc6a8005206de1e3078159e87eb11705ec 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: [ {