@guestbell/react-page-plugins
Version:
Plugins we use in GuestBell for working with amazing react-page package
45 lines (44 loc) • 1.3 kB
TypeScript
import * as React from 'react';
import { Editable } from 'slate-react';
import { SlateValue } from '../../types/slate/SlateValue';
import { Migration } from '../../slateMigrations/Migration';
export type SlateEditorOnChangeHandler = (val: {
value: SlateValue;
isDirty: boolean;
isValid: boolean;
}) => void;
export declare enum ToolbarButtonTypes {
Link = 1,
Heading = 2,
Lists = 4,
Color = 8,
Alignment = 16,
Quote = 32,
FontSize = 64
}
export declare enum HoverButtonTypes {
Bold = 1,
Italic = 2,
Underline = 4,
Link = 8,
Color = 16
}
export interface SlateEditorCustomProps {
value: SlateValue;
onChange: SlateEditorOnChangeHandler;
className?: string;
label?: JSX.Element | string;
title?: JSX.Element | string;
maxChars?: number;
version?: number;
migrations?: Migration[];
extraToolbarButtons?: JSX.Element;
extraHoverButtons?: JSX.Element;
toolbarButtons?: ToolbarButtonTypes;
hoverButtons?: HoverButtonTypes;
hideToolbar?: boolean;
}
type EditableProps = React.ComponentProps<typeof Editable>;
type SlateEditorProps = SlateEditorCustomProps & Omit<Partial<EditableProps>, 'onChange' | 'value'>;
declare const SlateEditor: React.FC<SlateEditorProps>;
export default SlateEditor;