From 15276ea3b40d17b8768014b855e180c0ea786b6a Mon Sep 17 00:00:00 2001 From: Andy Balaam Date: Fri, 28 Jan 2022 09:39:10 +0000 Subject: [PATCH] Render no buttons if we have a voice recording (#7658) --- .../views/rooms/MessageComposer.tsx | 68 +++++++++---------- 1 file changed, 33 insertions(+), 35 deletions(-) diff --git a/src/components/views/rooms/MessageComposer.tsx b/src/components/views/rooms/MessageComposer.tsx index 1ae8e3cdd8..20b21481a8 100644 --- a/src/components/views/rooms/MessageComposer.tsx +++ b/src/components/views/rooms/MessageComposer.tsx @@ -125,7 +125,7 @@ class UploadButton extends React.Component { private uploadInput = React.createRef(); private dispatcherRef: string; - constructor(props) { + constructor(props: IUploadButtonProps) { super(props); this.dispatcherRef = dis.register(this.onAction); @@ -275,7 +275,7 @@ export default class MessageComposer extends React.Component { compact: false, }; - constructor(props) { + constructor(props: IProps) { super(props); VoiceRecordingStore.instance.on(UPDATE_EVENT, this.onVoiceStoreUpdate); @@ -499,10 +499,6 @@ export default class MessageComposer extends React.Component { } }; - private shouldShowStickerPicker = (): boolean => { - return this.state.showStickersButton && !this.state.haveRecording; - }; - private showStickers = (showStickers: boolean) => { this.setState({ showStickers }); }; @@ -513,41 +509,43 @@ export default class MessageComposer extends React.Component { }); }; - private renderButtons(menuPosition): JSX.Element | JSX.Element[] { + private renderButtons(menuPosition: AboveLeftOf): JSX.Element | JSX.Element[] { + if (this.state.haveRecording) { + return []; + } + let uploadButtonIndex = 0; const buttons: JSX.Element[] = []; - if (!this.state.haveRecording) { + buttons.push( + , + ); + uploadButtonIndex = buttons.length; + buttons.push( + , + ); + if (this.state.showLocationButton) { + const sender = this.props.room.getMember( + MatrixClientPeg.get().getUserId(), + ); buttons.push( - , ); - uploadButtonIndex = buttons.length; - buttons.push( - , - ); - if (this.state.showLocationButton) { - const sender = this.props.room.getMember( - MatrixClientPeg.get().getUserId(), - ); - buttons.push( - , - ); - } - buttons.push( - , - ); } - if (this.shouldShowStickerPicker()) { - let title; + buttons.push( + , + ); + if (this.state.showStickersButton) { + let title: string; if (!this.state.narrowMode) { title = this.state.showStickers ? _t("Hide Stickers") : _t("Show Stickers"); } @@ -565,7 +563,7 @@ export default class MessageComposer extends React.Component { } // XXX: the recording UI does not work well in narrow mode, so we hide this button for now - if (!this.state.haveRecording && !this.state.narrowMode) { + if (!this.state.narrowMode) { buttons.push(