Files
outline/shared/editor/queries/isNodeActive.ts
dependabot[bot] fbd16d4b9a chore(deps-dev): bump prettier from 2.1.2 to 2.8.8 (#5372)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tom Moor <tom.moor@gmail.com>
2023-05-22 19:14:56 -07:00

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;