Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tom Moor <tom.moor@gmail.com>
24 lines
644 B
TypeScript
24 lines
644 B
TypeScript
import { NodeType } from "prosemirror-model";
|
|
import { EditorState } from "prosemirror-state";
|
|
import { findParentNode, findSelectedNodeOfType } from "prosemirror-utils";
|
|
|
|
const isNodeActive =
|
|
(type: NodeType, attrs: Record<string, any> = {}) =>
|
|
(state: EditorState) => {
|
|
if (!type) {
|
|
return false;
|
|
}
|
|
|
|
const node =
|
|
findSelectedNodeOfType(type)(state.selection) ||
|
|
findParentNode((node) => node.type === type)(state.selection);
|
|
|
|
if (!Object.keys(attrs).length || !node) {
|
|
return !!node;
|
|
}
|
|
|
|
return node.node.hasMarkup(type, { ...node.node.attrs, ...attrs });
|
|
};
|
|
|
|
export default isNodeActive;
|