{
}
}
+ private renderThreadInfo(): React.ReactNode {
+ const room = MatrixClientPeg.get().getRoom(this.props.mxEvent.getRoomId());
+ const thread = room.getThread(this.props.mxEvent.getId());
+ if (!thread || this.props.showThreadInfo === false) {
+ return null;
+ }
+
+ const avatars = Array.from(thread.participants).map((mxId: string) => {
+ const member = room.getMember(mxId);
+ return ;
+ });
+
+ return (
+ {
+ dis.dispatch({
+ action: Action.SetRightPanelPhase,
+ phase: RightPanelPhases.ThreadView,
+ refireParams: {
+ event: this.props.mxEvent,
+ },
+ });
+ }}
+ >
+
+ { avatars }
+
+ { thread.length } { thread.length === 1 ? 'reply' : 'replies' }
+
+ );
+ }
+
private onRoomReceipt = (ev, room) => {
// ignore events for other rooms
const tileRoom = MatrixClientPeg.get().getRoom(this.props.mxEvent.getRoomId());
@@ -1167,6 +1204,7 @@ export default class EventTile extends React.Component {
{ keyRequestInfo }
{ actionBar }
{ this.props.layout === Layout.IRC && (reactionsRow) }
+ { this.renderThreadInfo() }
{ this.props.layout !== Layout.IRC && (reactionsRow) }
{ msgOption }
diff --git a/src/components/views/rooms/MessageComposer.tsx b/src/components/views/rooms/MessageComposer.tsx
index 8455e9aa11..bd53c9566a 100644
--- a/src/components/views/rooms/MessageComposer.tsx
+++ b/src/components/views/rooms/MessageComposer.tsx
@@ -183,6 +183,7 @@ interface IProps {
resizeNotifier: ResizeNotifier;
permalinkCreator: RoomPermalinkCreator;
replyToEvent?: MatrixEvent;
+ showReplyPreview?: boolean;
e2eStatus?: E2EStatus;
}
@@ -201,6 +202,10 @@ export default class MessageComposer extends React.Component {
private messageComposerInput: SendMessageComposer;
private voiceRecordingButton: VoiceRecordComposerTile;
+ static defaultProps = {
+ showReplyPreview: true,
+ };
+
constructor(props) {
super(props);
VoiceRecordingStore.instance.on(UPDATE_EVENT, this.onVoiceStoreUpdate);
@@ -454,7 +459,9 @@ export default class MessageComposer extends React.Component {
{ recordingTooltip }
-
+ { this.props.showReplyPreview && (
+
+ ) }
{ controls }