1 | /// <reference types="react" />
|
2 | import { Editor } from 'slate';
|
3 | type EditorChangeHandler = (editor: Editor) => void;
|
4 | /**
|
5 | * A React context for sharing the editor selector context in a way to control rerenders
|
6 | */
|
7 | export declare const SlateSelectorContext: import("react").Context<{
|
8 | getSlate: () => Editor;
|
9 | addEventListener: (callback: EditorChangeHandler) => () => void;
|
10 | }>;
|
11 | /**
|
12 | * use redux style selectors to prevent rerendering on every keystroke.
|
13 | * Bear in mind rerendering can only prevented if the returned value is a value type or for reference types (e.g. objects and arrays) add a custom equality function.
|
14 | *
|
15 | * Example:
|
16 | * ```
|
17 | * const isSelectionActive = useSlateSelector(editor => Boolean(editor.selection));
|
18 | * ```
|
19 | */
|
20 | export declare function useSlateSelector<T>(selector: (editor: Editor) => T, equalityFn?: (a: T, b: T) => boolean): T;
|
21 | /**
|
22 | * Create selector context with editor updating on every editor change
|
23 | */
|
24 | export declare function useSelectorContext(editor: Editor): {
|
25 | selectorContext: {
|
26 | getSlate: () => import("..").ReactEditor;
|
27 | addEventListener: (callback: EditorChangeHandler) => () => void;
|
28 | };
|
29 | onChange: (editor: Editor) => void;
|
30 | };
|
31 | export {};
|
32 | //# sourceMappingURL=use-slate-selector.d.ts.map |
\ | No newline at end of file |