Skip to content
GitHubDiscord

prosekit/react

editor: Editor

children?: ReactNode


contentRef: MarkViewContentRef

view: EditorView

mark: Mark


Options for defineReactMarkView.

name: string

The name of the mark type.

as?: MarkViewDOMSpec

contentAs?: MarkViewDOMSpec

component: ReactMarkViewComponent

ignoreMutation?: (mutation: ViewMutationRecord) => boolean | void

destroy?: () => void


contentRef: NodeViewContentRef

view: EditorView

getPos: () => undefined | number

setAttrs: (attrs: Attrs) => void

node: ProseMirrorNode

selected: boolean

decorations: readonly Decoration[]

innerDecorations: DecorationSource


Options for defineReactNodeView.

name: string

The name of the node type.

as?: NodeViewDOMSpec

contentAs?: NodeViewDOMSpec

component: ReactNodeViewComponent

update?: (node: ProseMirrorNode, decorations: readonly Decoration[], innerDecorations: DecorationSource) => boolean | void

ignoreMutation?: (mutation: ViewMutationRecord) => boolean | void

selectNode?: () => void

deselectNode?: () => void

setSelection?: (anchor: number, head: number, root: Document | ShadowRoot) => void

stopEvent?: (event: Event) => boolean

destroy?: () => void

onUpdate?: () => void


editor?: Editor<E>

The editor to add the extension to. If not provided, it will use the editor from the nearest ProseKit component.


editor?: Editor<any>

The editor to add the extension to. If not provided, it will use the editor from the nearest ProseKit component.

priority?: Priority

Optional priority to add the extension with.

type ReactMarkViewComponent = ComponentType<ReactMarkViewProps>


type ReactNodeViewComponent = ComponentType<ReactNodeViewProps>

const ProseKit: ComponentType<ProseKitProps>

The root component for a ProseKit editor.

function defineReactMarkView(options: ReactMarkViewOptions): Extension

Defines a mark view using a React component.


function defineReactNodeView(options: ReactNodeViewOptions): Extension

Defines a node view using a React component.


function useDocChange(handler: (doc: ProseMirrorNode) => void, options?: UseExtensionOptions): void

Calls the given handler whenever the editor document changes.


function useEditorDerivedValue<E, Derived>(derive: (editor: Editor<E>) => Derived, options?: UseEditorDerivedOptions<E>): Derived

A hook that runs a function to derive a value from the editor instance after editor state changes.

This is useful when you need to render something based on the editor state, for example, whether the selected text is wrapped in an italic mark.


function useEditor<E>(options?: object): Editor<E>

Retrieves the editor instance from the nearest ProseKit component.


function useExtension(extension: null | Extension<ExtensionTyping<any, any, any>>, options?: UseExtensionOptions): void

Add an extension to the editor.


function useKeymap(keymap: Keymap, options?: UseExtensionOptions): void


function useStateUpdate(handler: (state: EditorState) => void, options?: UseExtensionOptions): void

Calls the given handler whenever the editor state changes.