diff --git a/src/frontend/src/features/rooms/components/join/SelectDevice.tsx b/src/frontend/src/features/rooms/components/join/SelectDevice.tsx index 1981b0fa..3d151ff2 100644 --- a/src/frontend/src/features/rooms/components/join/SelectDevice.tsx +++ b/src/frontend/src/features/rooms/components/join/SelectDevice.tsx @@ -6,7 +6,7 @@ import { } from '@remixicon/react' import { useTranslation } from 'react-i18next' import { useMediaDeviceSelect } from '@livekit/components-react' -import { useMemo } from 'react' +import { useEffect, useMemo } from 'react' import { Select } from '@/primitives/Select' import { useSnapshot } from 'valtio' import { permissionsStore } from '@/stores/permissions' @@ -45,6 +45,22 @@ const SelectDevicePermissions = ({ label: d.label, })) + /** + * FALLBACK AUDIO OUTPUT DEVICE SELECTION + * Auto-selects the only available audio output device when currently on 'default' + */ + useEffect(() => { + if ( + kind !== 'audiooutput' || + items.length !== 1 || + items[0].value === 'default' || + activeDeviceId !== 'default' + ) + return + onSubmit?.(items[0].value) + setActiveMediaDevice(items[0].value) + }, [items, onSubmit, kind, setActiveMediaDevice, activeDeviceId]) + return (