UNPKG

@blocknote/react

Version:

A "Notion-style" block-based extensible text editor built on top of Prosemirror and Tiptap.

20 lines (19 loc) 1.02 kB
import { BlockNoteEditor, createStore, Extension, ExtensionFactory } from "@blocknote/core"; type Store<T> = ReturnType<typeof createStore<T>>; /** * Use an extension instance */ export declare function useExtension<const T extends ExtensionFactory | Extension | string>(plugin: T, ctx?: { editor?: BlockNoteEditor<any, any, any>; }): T extends ExtensionFactory ? NonNullable<ReturnType<ReturnType<T>>> : T extends string ? Extension : T extends Extension ? T : never; type ExtractStore<T> = T extends Store<infer U> ? U : never; /** * Use the state of an extension */ export declare function useExtensionState<T extends ExtensionFactory | Extension, TExtension = T extends ExtensionFactory ? ReturnType<ReturnType<T>> : T, TStore = TExtension extends { store: Store<any>; } ? TExtension["store"] : never, TSelected = NoInfer<ExtractStore<TStore>>>(plugin: T, ctx?: { editor?: BlockNoteEditor<any, any, any>; selector?: (state: NoInfer<ExtractStore<TStore>>) => TSelected; }): TSelected; export {};