UNPKG

matrix-react-sdk

Version:
83 lines (82 loc) 3.03 kB
import React from "react"; import { IEventRelation, MatrixEvent, Room, RoomMember } from "matrix-js-sdk/src/matrix"; import { RoomPermalinkCreator } from "../../../utils/permalinks/Permalinks"; import ResizeNotifier from "../../../utils/ResizeNotifier"; import { E2EStatus } from "../../../utils/ShieldUtils"; import RoomContext from "../../../contexts/RoomContext"; import { MatrixClientProps } from "../../../contexts/MatrixClientContext"; export declare const WYSIWYG_EDITOR_STATE_STORAGE_PREFIX = "mx_wysiwyg_state_"; interface IProps extends MatrixClientProps { room: Room; resizeNotifier: ResizeNotifier; permalinkCreator?: RoomPermalinkCreator; replyToEvent?: MatrixEvent; relation?: IEventRelation; e2eStatus?: E2EStatus; compact?: boolean; } interface IState { composerContent: string; isComposerEmpty: boolean; haveRecording: boolean; recordingTimeLeftSeconds?: number; me?: RoomMember; isMenuOpen: boolean; isStickerPickerOpen: boolean; showStickersButton: boolean; showPollsButton: boolean; showVoiceBroadcastButton: boolean; isWysiwygLabEnabled: boolean; isRichTextEnabled: boolean; initialComposerContent: string; } export declare class MessageComposer extends React.Component<IProps, IState> { private dispatcherRef?; private messageComposerInput; private voiceRecordingButton; private ref; private instanceId; private _voiceRecording; static contextType: React.Context<import("../../structures/RoomView").IRoomState & { threadId?: string; }>; context: React.ContextType<typeof RoomContext>; static defaultProps: { compact: boolean; showVoiceBroadcastButton: boolean; isRichTextEnabled: boolean; }; constructor(props: IProps, context: React.ContextType<typeof RoomContext>); private get editorStateKey(); private restoreWysiwygEditorState; private saveWysiwygEditorState; private shouldSaveWysiwygEditorState; private clearStoredEditorState; private get voiceRecording(); private set voiceRecording(value); componentDidMount(): void; private onResize; private onAction; private waitForOwnMember; componentWillUnmount(): void; private onTombstoneClick; private renderPlaceholderText; private addEmoji; private sendMessage; private onChange; private onWysiwygChange; private onRichTextToggle; private onVoiceStoreUpdate; private updateRecordingState; private onRecordingStarted; private onRecordingEndingSoon; private setStickerPickerOpen; private toggleStickerPickerOpen; private toggleButtonMenu; private get showStickersButton(); private getMenuPosition; private onRecordStartEndClick; render(): React.ReactNode; } declare const MessageComposerWithMatrixClient: (props: Omit<IProps, "mxClient"> & React.RefAttributes<React.Component<IProps, any, any>>) => React.ReactElement | null; export default MessageComposerWithMatrixClient;