UNPKG

1.95 kBTypeScriptView Raw
1import { EditorState } from "draft-js";
2import { ComponentType, ReactNode } from "react";
3
4export interface DraftJsButtonTheme {
5 // CSS classes to apply
6 active: string;
7 button: string;
8 buttonWrapper: string;
9}
10
11export interface DraftJsButtonProps {
12 theme?: DraftJsButtonTheme;
13}
14
15export interface DraftJsBlockAlignmentButtonProps extends DraftJsButtonProps {
16 alignment: string;
17
18 setAlignment(alignment: string): void;
19}
20
21type DraftJsBlockAlignmentButtonType = ComponentType<
22 DraftJsBlockAlignmentButtonProps
23>;
24
25export const AlignBlockCenterButton: DraftJsBlockAlignmentButtonType;
26export const AlignBlockDefaultButton: DraftJsBlockAlignmentButtonType;
27export const AlignBlockLeftButton: DraftJsBlockAlignmentButtonType;
28export const AlignBlockRightButton: DraftJsBlockAlignmentButtonType;
29
30export interface DraftJsStyleButtonProps extends DraftJsButtonProps {
31 setEditorState(editorState: EditorState): void;
32
33 getEditorState(): EditorState;
34}
35
36type DraftJsStyleButtonType = ComponentType<DraftJsStyleButtonProps>;
37
38export const createBlockStyleButton: (
39 alignment: string,
40 children: ReactNode
41) => DraftJsStyleButtonType;
42export const createInlineStyleButton: (
43 alignment: string,
44 children: ReactNode
45) => DraftJsStyleButtonType;
46
47export const BlockquoteButton: DraftJsStyleButtonType;
48export const BoldButton: DraftJsStyleButtonType;
49export const CodeBlockButton: DraftJsStyleButtonType;
50export const CodeButton: DraftJsStyleButtonType;
51export const HeadlineOneButton: DraftJsStyleButtonType;
52export const HeadlineThreeButton: DraftJsStyleButtonType;
53export const HeadlineTwoButton: DraftJsStyleButtonType;
54export const ItalicButton: DraftJsStyleButtonType;
55export const OrderedListButton: DraftJsStyleButtonType;
56export const SubButton: DraftJsStyleButtonType;
57export const SupButton: DraftJsStyleButtonType;
58export const UnderlineButton: DraftJsStyleButtonType;
59export const UnorderedListButton: DraftJsStyleButtonType;