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