diff --git a/src/components/views/audio_messages/DevicesContextMenu.tsx b/src/components/views/audio_messages/DevicesContextMenu.tsx deleted file mode 100644 index a88a280242..0000000000 --- a/src/components/views/audio_messages/DevicesContextMenu.tsx +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright 2024 New Vector Ltd. -Copyright 2022, 2023 The Matrix.org Foundation C.I.C. - -SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only -Please see LICENSE files in the repository root for full details. -*/ - -import React, { MutableRefObject } from "react"; - -import { toLeftOrRightOf } from "../../structures/ContextMenu"; -import IconizedContextMenu, { - IconizedContextMenuOptionList, - IconizedContextMenuRadio, -} from "../context_menus/IconizedContextMenu"; - -interface Props { - containerRef: MutableRefObject; - currentDevice: MediaDeviceInfo | null; - devices: MediaDeviceInfo[]; - onDeviceSelect: (device: MediaDeviceInfo) => void; -} - -export const DevicesContextMenu: React.FC = ({ containerRef, currentDevice, devices, onDeviceSelect }) => { - const deviceOptions = devices.map((d: MediaDeviceInfo) => { - return ( - onDeviceSelect(d)} - label={d.label} - /> - ); - }); - - return ( - {}} - {...(containerRef.current ? toLeftOrRightOf(containerRef.current.getBoundingClientRect(), 0) : {})} - > - {deviceOptions} - - ); -}; diff --git a/src/components/views/rooms/RoomTile.tsx b/src/components/views/rooms/RoomTile.tsx index 78efd5a5ae..7953c5068d 100644 --- a/src/components/views/rooms/RoomTile.tsx +++ b/src/components/views/rooms/RoomTile.tsx @@ -72,7 +72,7 @@ export const contextMenuBelow = (elementRect: PartialDOMRect): MenuProps => { return { left, top, chevronFace }; }; -export class RoomTile extends React.PureComponent { +class RoomTile extends React.PureComponent { private dispatcherRef?: string; private roomTileRef = createRef(); private notificationState: NotificationState; diff --git a/src/hooks/useAudioDeviceSelection.ts b/src/hooks/useAudioDeviceSelection.ts deleted file mode 100644 index 504eb10ea6..0000000000 --- a/src/hooks/useAudioDeviceSelection.ts +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright 2024 New Vector Ltd. -Copyright 2022 The Matrix.org Foundation C.I.C. - -SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only -Please see LICENSE files in the repository root for full details. -*/ - -import { useRef, useState } from "react"; - -import { _t } from "../languageHandler"; -import MediaDeviceHandler, { MediaDeviceKindEnum } from "../MediaDeviceHandler"; -import { requestMediaPermissions } from "../utils/media/requestMediaPermissions"; - -interface State { - devices: MediaDeviceInfo[]; - device: MediaDeviceInfo | null; -} - -export const useAudioDeviceSelection = ( - onDeviceChanged?: (device: MediaDeviceInfo) => void, -): { - currentDevice: MediaDeviceInfo | null; - currentDeviceLabel: string; - devices: MediaDeviceInfo[]; - setDevice(device: MediaDeviceInfo): void; -} => { - const shouldRequestPermissionsRef = useRef(true); - const [state, setState] = useState({ - devices: [], - device: null, - }); - - if (shouldRequestPermissionsRef.current) { - shouldRequestPermissionsRef.current = false; - requestMediaPermissions(false).then((stream: MediaStream | undefined) => { - MediaDeviceHandler.getDevices().then((devices) => { - if (!devices) return; - const { audioinput } = devices; - MediaDeviceHandler.getDefaultDevice(audioinput); - const deviceFromSettings = MediaDeviceHandler.getAudioInput(); - const device = - audioinput.find((d) => { - return d.deviceId === deviceFromSettings; - }) || audioinput[0]; - setState({ - ...state, - devices: audioinput, - device, - }); - stream?.getTracks().forEach((t) => t.stop()); - }); - }); - } - - const setDevice = (device: MediaDeviceInfo): void => { - const shouldNotify = device.deviceId !== state.device?.deviceId; - MediaDeviceHandler.instance.setDevice(device.deviceId, MediaDeviceKindEnum.AudioInput); - - setState({ - ...state, - device, - }); - - if (shouldNotify) { - onDeviceChanged?.(device); - } - }; - - return { - currentDevice: state.device, - currentDeviceLabel: state.device?.label || _t("voip|default_device"), - devices: state.devices, - setDevice, - }; -};