add commands and utils packages
This commit is contained in:
2
packages/tiptap-utils/src/index.js
Normal file
2
packages/tiptap-utils/src/index.js
Normal file
@@ -0,0 +1,2 @@
|
||||
export { default as markIsActive } from './utils/markIsActive'
|
||||
export { default as nodeIsActive } from './utils/nodeIsActive'
|
||||
14
packages/tiptap-utils/src/utils/markIsActive.js
Normal file
14
packages/tiptap-utils/src/utils/markIsActive.js
Normal file
@@ -0,0 +1,14 @@
|
||||
export default function (state, type) {
|
||||
const {
|
||||
from,
|
||||
$from,
|
||||
to,
|
||||
empty,
|
||||
} = state.selection
|
||||
|
||||
if (empty) {
|
||||
return !!type.isInSet(state.storedMarks || $from.marks())
|
||||
}
|
||||
|
||||
return !!state.doc.rangeHasMark(from, to, type)
|
||||
}
|
||||
12
packages/tiptap-utils/src/utils/nodeIsActive.js
Normal file
12
packages/tiptap-utils/src/utils/nodeIsActive.js
Normal file
@@ -0,0 +1,12 @@
|
||||
import { findParentNode } from 'prosemirror-utils'
|
||||
|
||||
export default function (state, type, attrs) {
|
||||
const predicate = node => node.type === type
|
||||
const parent = findParentNode(predicate)(state.selection)
|
||||
|
||||
if (attrs === {} || !parent) {
|
||||
return !!parent
|
||||
}
|
||||
|
||||
return parent.node.hasMarkup(type, attrs)
|
||||
}
|
||||
Reference in New Issue
Block a user