matrix-react-sdk
Version:
SDK for matrix.org using React
40 lines (39 loc) • 1.46 kB
TypeScript
import React, { ReactNode } from "react";
import { Room, IEventRelation, MatrixEvent } from "matrix-js-sdk/src/matrix";
import { RecordingState } from "../../../audio/VoiceRecording";
import { RoomPermalinkCreator } from "../../../utils/permalinks/Permalinks";
import RoomContext from "../../../contexts/RoomContext";
import { VoiceMessageRecording } from "../../../audio/VoiceMessageRecording";
interface IProps {
room: Room;
permalinkCreator?: RoomPermalinkCreator;
relation?: IEventRelation;
replyToEvent?: MatrixEvent;
}
interface IState {
recorder?: VoiceMessageRecording;
recordingPhase?: RecordingState;
didUploadFail?: boolean;
}
/**
* Container tile for rendering the voice message recorder in the composer.
*/
export default class VoiceRecordComposerTile extends React.PureComponent<IProps, IState> {
static contextType: React.Context<import("../../structures/RoomView").IRoomState & {
threadId?: string;
}>;
context: React.ContextType<typeof RoomContext>;
private voiceRecordingId;
constructor(props: IProps, context: React.ContextType<typeof RoomContext>);
componentDidMount(): void;
componentWillUnmount(): Promise<void>;
send(): Promise<void>;
private disposeRecording;
private onCancel;
onRecordStartEndClick: () => Promise<void>;
private bindNewRecorder;
private onRecordingUpdate;
private renderWaveformArea;
render(): ReactNode;
}
export {};