add isNodeEmpty helper method

This commit is contained in:
Philipp Kühn
2021-03-24 22:23:08 +01:00
parent 59b031c27c
commit 43320e51c7
3 changed files with 12 additions and 5 deletions

View File

@@ -7,6 +7,7 @@ import getMarkAttributes from './helpers/getMarkAttributes'
import isActive from './helpers/isActive' import isActive from './helpers/isActive'
import removeElement from './utilities/removeElement' import removeElement from './utilities/removeElement'
import getHTMLFromFragment from './helpers/getHTMLFromFragment' import getHTMLFromFragment from './helpers/getHTMLFromFragment'
import isNodeEmpty from './helpers/isNodeEmpty'
import createStyleTag from './utilities/createStyleTag' import createStyleTag from './utilities/createStyleTag'
import CommandManager from './CommandManager' import CommandManager from './CommandManager'
import ExtensionManager from './ExtensionManager' import ExtensionManager from './ExtensionManager'
@@ -415,11 +416,8 @@ export class Editor extends EventEmitter {
/** /**
* Check if there is no content. * Check if there is no content.
*/ */
public isEmpty(): boolean { public get isEmpty(): boolean {
const defaultContent = this.state.doc.type.createAndFill()?.toJSON() return isNodeEmpty(this.state.doc)
const content = this.getJSON()
return JSON.stringify(defaultContent) === JSON.stringify(content)
} }
/** /**

View File

@@ -0,0 +1,8 @@
import { Node as ProseMirrorNode } from 'prosemirror-model'
export default function isNodeEmpty(node: ProseMirrorNode): boolean {
const defaultContent = node.type.createAndFill()?.toJSON()
const content = node.toJSON()
return JSON.stringify(defaultContent) === JSON.stringify(content)
}

View File

@@ -18,6 +18,7 @@ export { default as getMarkAttributes } from './helpers/getMarkAttributes'
export { default as isActive } from './helpers/isActive' export { default as isActive } from './helpers/isActive'
export { default as isMarkActive } from './helpers/isMarkActive' export { default as isMarkActive } from './helpers/isMarkActive'
export { default as isNodeActive } from './helpers/isNodeActive' export { default as isNodeActive } from './helpers/isNodeActive'
export { default as isNodeEmpty } from './helpers/isNodeEmpty'
export { default as isNodeSelection } from './helpers/isNodeSelection' export { default as isNodeSelection } from './helpers/isNodeSelection'
export { default as isTextSelection } from './helpers/isTextSelection' export { default as isTextSelection } from './helpers/isTextSelection'
export { default as findParentNodeClosestToPos } from './helpers/findParentNodeClosestToPos' export { default as findParentNodeClosestToPos } from './helpers/findParentNodeClosestToPos'