chore: Move editor into codebase (#2930)
This commit is contained in:
23
shared/editor/queries/isNodeActive.ts
Normal file
23
shared/editor/queries/isNodeActive.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user