@firecms/core
Version:
Awesome Firebase/Firestore-based headless open-source CMS
30 lines (29 loc) • 1.2 kB
TypeScript
import React from "react";
import { Node as ProseMirrorNode } from "prosemirror-model";
import { EditorView, NodeView } from "prosemirror-view";
export interface ReactNodeViewProps {
node: ProseMirrorNode;
view: EditorView;
getPos: () => number | undefined;
}
export type ReactNodeViewComponent = React.FC<ReactNodeViewProps>;
/**
* A utility class that implements the ProseMirror NodeView interface but delegates rendering
* to a React component.
* Note: This uses createRoot, so it does not automatically inherit React Contexts.
* If contexts are needed, wrap them manually or use a portal-based approach instead.
*/
export declare class ReactNodeView implements NodeView {
node: ProseMirrorNode;
view: EditorView;
getPos: () => number | undefined;
dom: HTMLElement;
contentDOM?: HTMLElement;
private root;
private Component;
constructor(node: ProseMirrorNode, view: EditorView, getPos: () => number | undefined, Component: ReactNodeViewComponent, as?: string, className?: string, contentDOMElement?: HTMLElement);
private render;
update(node: ProseMirrorNode): boolean;
destroy(): void;
ignoreMutation(mutation: any): boolean;
}