UNPKG

matrix-react-sdk

Version:
71 lines (70 loc) 3.57 kB
import React from "react"; import { IContent, MatrixEvent, IEventRelation, Room } from "matrix-js-sdk/src/matrix"; import { RoomMessageEventContent } from "matrix-js-sdk/src/types"; import EditorModel from "../../../editor/model"; import { MatrixClientProps } from "../../../contexts/MatrixClientContext"; import { RoomPermalinkCreator } from "../../../utils/permalinks/Permalinks"; import RoomContext from "../../../contexts/RoomContext"; export declare const EDITOR_STATE_STORAGE_PREFIX = "mx_cider_state_"; /** * Build the mentions information based on the editor model (and any related events): * * 1. Search the model parts for room or user pills and fill in the mentions object. * 2. If this is a reply to another event, include any user mentions from that * (but do not include a room mention). * * @param sender - The Matrix ID of the user sending the event. * @param content - The event content. * @param model - The editor model to search for mentions, null if there is no editor. * @param replyToEvent - The event being replied to or undefined if it is not a reply. * @param editedContent - The content of the parent event being edited. */ export declare function attachMentions(sender: string, content: IContent, model: EditorModel | null, replyToEvent: MatrixEvent | undefined, editedContent?: IContent | null): void; export declare function attachRelation(content: IContent, relation?: IEventRelation): void; export declare function createMessageContent(sender: string, model: EditorModel, replyToEvent: MatrixEvent | undefined, relation: IEventRelation | undefined, permalinkCreator?: RoomPermalinkCreator, includeReplyLegacyFallback?: boolean): RoomMessageEventContent; export declare function isQuickReaction(model: EditorModel): boolean; interface ISendMessageComposerProps extends MatrixClientProps { room: Room; placeholder?: string; permalinkCreator?: RoomPermalinkCreator; relation?: IEventRelation; replyToEvent?: MatrixEvent; disabled?: boolean; onChange?(model: EditorModel): void; includeReplyLegacyFallback?: boolean; toggleStickerPickerOpen: () => void; } export declare class SendMessageComposer extends React.Component<ISendMessageComposerProps> { static contextType: React.Context<import("../../structures/RoomView").IRoomState & { threadId?: string; }>; context: React.ContextType<typeof RoomContext>; private readonly prepareToEncrypt?; private readonly editorRef; private model; private currentlyComposedEditorState; private dispatcherRef; private sendHistoryManager; static defaultProps: { includeReplyLegacyFallback: boolean; }; constructor(props: ISendMessageComposerProps, context: React.ContextType<typeof RoomContext>); componentDidUpdate(prevProps: ISendMessageComposerProps): void; private onKeyDown; private selectSendHistory; private sendQuickReaction; sendMessage(): Promise<void>; componentWillUnmount(): void; private get editorStateKey(); private clearStoredEditorState; private restoreStoredEditorState; private shouldSaveStoredEditorState; private saveStoredEditorState; private onAction; private onPaste; private onChange; private focusComposer; render(): React.ReactNode; } declare const SendMessageComposerWithMatrixClient: (props: Omit<ISendMessageComposerProps, "mxClient"> & React.RefAttributes<React.Component<ISendMessageComposerProps, any, any>>) => React.ReactElement | null; export default SendMessageComposerWithMatrixClient;