react-mde
Version:
React Markdown Editor
65 lines (64 loc) • 2.74 kB
TypeScript
import * as React from "react";
import { CommandMap, GenerateMarkdownPreview, GetIcon, PasteOptions, Suggestion, ToolbarCommands } from "../types";
import { Tab } from "../types/Tab";
import { Classes, L18n } from "..";
import { ChildProps } from "../child-props";
import { CommandOrchestrator } from "../commands/command-orchestrator";
import { Refs } from "../refs";
import { ButtonHTMLAttributes, TextareaHTMLAttributes } from "react";
import { ComponentSimilarTo } from "../util/type-utils";
export interface ReactMdeProps {
value: string;
onChange: (value: string) => void;
selectedTab: "write" | "preview";
onTabChange: (tab: "write" | "preview") => void;
generateMarkdownPreview: GenerateMarkdownPreview;
minEditorHeight?: number;
maxEditorHeight?: number;
initialEditorHeight?: number;
minPreviewHeight?: number;
heightUnits?: string;
classes?: Classes;
refs?: Refs;
toolbarCommands?: ToolbarCommands;
commands?: CommandMap;
getIcon?: GetIcon;
loadingPreview?: React.ReactNode;
readOnly?: boolean;
disablePreview?: boolean;
suggestionTriggerCharacters?: string[];
suggestionsAutoplace?: boolean;
loadSuggestions?: (text: string, triggeredBy: string) => Promise<Suggestion[]>;
childProps?: ChildProps;
paste?: PasteOptions;
l18n?: L18n;
/**
* Custom textarea component. "textAreaComponent" can be any React component which
* props are a subset of the props of an HTMLTextAreaElement
*/
textAreaComponent?: ComponentSimilarTo<HTMLTextAreaElement, TextareaHTMLAttributes<HTMLTextAreaElement>>;
/**
* Custom toolbar button component. "toolbarButtonComponent" can be any React component which
* props are a subset of the props of an HTMLButtonElement
*/
toolbarButtonComponent?: ComponentSimilarTo<HTMLButtonElement, ButtonHTMLAttributes<HTMLButtonElement>>;
}
export interface ReactMdeState {
editorHeight: number;
}
export declare class ReactMde extends React.Component<ReactMdeProps, ReactMdeState> {
/**
* "finalRefs" is a clone of "props.refs" except that undefined refs are set to default values
*/
finalRefs: Refs;
commandOrchestrator: CommandOrchestrator;
static defaultProps: Partial<ReactMdeProps>;
constructor(props: ReactMdeProps);
handleTextChange: (value: string) => void;
handlePaste: (event: React.ClipboardEvent<HTMLTextAreaElement>) => Promise<void>;
handleDrop: (event: React.DragEvent<HTMLTextAreaElement>) => Promise<void>;
handleImageSelection: (event: React.ChangeEvent) => Promise<void>;
handleTabChange: (newTab: Tab) => void;
handleCommand: (commandName: string) => Promise<void>;
render(): JSX.Element;
}