add nodeIsActive
This commit is contained in:
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
15
packages/tiptap-core/src/utils/nodeIsActive.ts
Normal file
15
packages/tiptap-core/src/utils/nodeIsActive.ts
Normal 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)
|
||||
}
|
||||
Reference in New Issue
Block a user