add nodeIsActive

This commit is contained in:
Philipp Kühn
2020-03-30 00:15:20 +02:00
parent b30f5c3320
commit adfa7f0243
3 changed files with 30 additions and 34 deletions

View File

@@ -23,6 +23,7 @@
"prosemirror-keymap": "^1.1.3",
"prosemirror-model": "^1.9.1",
"prosemirror-state": "^1.3.3",
"prosemirror-utils": "^0.9.6",
"prosemirror-view": "^1.14.6"
}
}

View File

@@ -0,0 +1,15 @@
import { findParentNode, findSelectedNodeOfType } from 'prosemirror-utils'
import { EditorState } from 'prosemirror-state'
import { Node, NodeType } from 'prosemirror-model'
export default function nodeIsActive(state: EditorState, type: NodeType, attrs = {}) {
const predicate = (node: Node) => node.type === type
const node = findSelectedNodeOfType(type)(state.selection)
|| findParentNode(predicate)(state.selection)
if (!Object.keys(attrs).length || !node) {
return !!node
}
return node.node.hasMarkup(type, attrs)
}