Do not attach files while voice recording in progress

This commit is contained in:
Josh Perez 2022-02-11 15:18:04 -05:00 committed by GitHub
parent 8c85a9d37f
commit 138580fedb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 15 deletions

View File

@ -11,10 +11,8 @@ import type {
LocalizerType,
ThemeType,
} from '../types/Util';
import type {
ErrorDialogAudioRecorderType,
RecordingState,
} from '../state/ducks/audioRecorder';
import type { ErrorDialogAudioRecorderType } from '../state/ducks/audioRecorder';
import { RecordingState } from '../state/ducks/audioRecorder';
import type { HandleAttachmentsProcessingArgsType } from '../util/handleAttachmentsProcessing';
import { Spinner } from './Spinner';
import type { Props as EmojiButtonProps } from './emoji/EmojiButton';
@ -399,16 +397,18 @@ export const CompositionArea = ({
/>
) : null;
const attButton = linkPreviewResult ? undefined : (
<div className="CompositionArea__button-cell">
<button
type="button"
className="CompositionArea__attach-file"
onClick={launchAttachmentPicker}
aria-label={i18n('CompositionArea--attach-file')}
/>
</div>
);
const isRecording = recordingState === RecordingState.Recording;
const attButton =
linkPreviewResult || isRecording ? undefined : (
<div className="CompositionArea__button-cell">
<button
type="button"
className="CompositionArea__attach-file"
onClick={launchAttachmentPicker}
aria-label={i18n('CompositionArea--attach-file')}
/>
</div>
);
const sendButtonFragment = (
<div

View File

@ -110,6 +110,7 @@ import { resolveAttachmentDraftData } from '../util/resolveAttachmentDraftData';
import { showToast } from '../util/showToast';
import { viewSyncJobQueue } from '../jobs/viewSyncJobQueue';
import { viewedReceiptsJobQueue } from '../jobs/viewedReceiptsJobQueue';
import { RecordingState } from '../state/ducks/audioRecorder';
type AttachmentOptions = {
messageId: string;
@ -964,7 +965,12 @@ export class ConversationView extends window.Backbone.View<ConversationModel> {
// TODO DESKTOP-2426
async processAttachments(files: Array<File>): Promise<void> {
if (this.preview) {
const state = window.reduxStore.getState();
const isRecording =
state.audioRecorder.recordingState === RecordingState.Recording;
if (this.preview || isRecording) {
return;
}