Strictify voice-broadcast (#10393)
This commit is contained in:
parent
6d15b05b86
commit
aae9dfbb7d
7 changed files with 69 additions and 23 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2022 The Matrix.org Foundation C.I.C.
|
||||
Copyright 2022-2023 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -27,8 +27,8 @@ interface Props {
|
|||
}
|
||||
|
||||
export const VoiceBroadcastPlaybackControl: React.FC<Props> = ({ onClick, state }) => {
|
||||
let controlIcon: ReactElement;
|
||||
let controlLabel: string;
|
||||
let controlIcon: ReactElement | null = null;
|
||||
let controlLabel: string | null = null;
|
||||
let className = "";
|
||||
|
||||
switch (state) {
|
||||
|
@ -49,5 +49,11 @@ export const VoiceBroadcastPlaybackControl: React.FC<Props> = ({ onClick, state
|
|||
break;
|
||||
}
|
||||
|
||||
return <VoiceBroadcastControl className={className} label={controlLabel} icon={controlIcon} onClick={onClick} />;
|
||||
if (controlIcon && controlLabel) {
|
||||
return (
|
||||
<VoiceBroadcastControl className={className} label={controlLabel} icon={controlIcon} onClick={onClick} />
|
||||
);
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2022 The Matrix.org Foundation C.I.C.
|
||||
Copyright 2022-2023 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -48,6 +48,12 @@ export const useVoiceBroadcastPlayback = (
|
|||
throw new Error(`Voice Broadcast room not found (event ${playback.infoEvent.getId()})`);
|
||||
}
|
||||
|
||||
const sender = playback.infoEvent.sender;
|
||||
|
||||
if (!sender) {
|
||||
throw new Error(`Voice Broadcast sender not found (event ${playback.infoEvent.getId()})`);
|
||||
}
|
||||
|
||||
const playbackToggle = (): void => {
|
||||
playback.toggle();
|
||||
};
|
||||
|
@ -87,7 +93,7 @@ export const useVoiceBroadcastPlayback = (
|
|||
liveness: liveness,
|
||||
playbackState,
|
||||
room: room,
|
||||
sender: playback.infoEvent.sender,
|
||||
sender,
|
||||
toggle: playbackToggle,
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2022 The Matrix.org Foundation C.I.C.
|
||||
Copyright 2022-2023 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -66,6 +66,12 @@ export const useVoiceBroadcastRecording = (
|
|||
throw new Error("Unable to find voice broadcast room with Id: " + roomId);
|
||||
}
|
||||
|
||||
const sender = recording.infoEvent.sender;
|
||||
|
||||
if (!sender) {
|
||||
throw new Error(`Voice Broadcast sender not found (event ${recording.infoEvent.getId()})`);
|
||||
}
|
||||
|
||||
const stopRecording = async (): Promise<void> => {
|
||||
const confirmed = await showStopBroadcastingDialog();
|
||||
|
||||
|
@ -99,7 +105,7 @@ export const useVoiceBroadcastRecording = (
|
|||
timeLeft,
|
||||
recordingState,
|
||||
room,
|
||||
sender: recording.infoEvent.sender,
|
||||
sender,
|
||||
stopRecording,
|
||||
toggleRecording: recording.toggle,
|
||||
};
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2022 The Matrix.org Foundation C.I.C.
|
||||
Copyright 2022-2023 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -17,7 +17,12 @@ limitations under the License.
|
|||
import { MatrixClient, MatrixEvent } from "matrix-js-sdk/src/matrix";
|
||||
import { TypedEventEmitter } from "matrix-js-sdk/src/models/typed-event-emitter";
|
||||
|
||||
import { VoiceBroadcastInfoState, VoiceBroadcastRecording, VoiceBroadcastRecordingEvent } from "..";
|
||||
import {
|
||||
VoiceBroadcastInfoState,
|
||||
VoiceBroadcastRecording,
|
||||
VoiceBroadcastRecordingEvent,
|
||||
VoiceBroadcastRecordingState,
|
||||
} from "..";
|
||||
|
||||
export enum VoiceBroadcastRecordingsStoreEvent {
|
||||
CurrentChanged = "current_changed",
|
||||
|
@ -85,7 +90,7 @@ export class VoiceBroadcastRecordingsStore extends TypedEventEmitter<VoiceBroadc
|
|||
return recording;
|
||||
}
|
||||
|
||||
private onCurrentStateChanged = (state: VoiceBroadcastInfoState): void => {
|
||||
private onCurrentStateChanged = (state: VoiceBroadcastRecordingState): void => {
|
||||
if (state === VoiceBroadcastInfoState.Stopped) {
|
||||
this.clearCurrent();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue