import React from 'react'; import { useMediaDevices } from '@custom/shared/contexts/MediaDeviceProvider'; import Field from '../Field'; import { SelectInput } from '../Input'; export const DeviceSelect = () => { const { cams, mics, speakers, currentCam, setCurrentCam, currentMic, setCurrentMic, currentSpeaker, setCurrentSpeaker, } = useMediaDevices(); if (!currentCam && !currentMic && !currentSpeaker) { return
Loading devices...
; } return ( <> setCurrentCam(cams[e.target.value])} value={cams.findIndex( (i) => i.deviceId === currentCam.deviceId )} > {cams.map(({ deviceId, label }, i) => ( ))} setCurrentMic(mics[e.target.value])} value={mics.findIndex( (i) => i.deviceId === currentMic.deviceId )} > {mics.map(({ deviceId, label }, i) => ( ))} {/** * Note: Safari does not support selection audio output devices */} {speakers.length > 0 && ( setCurrentSpeaker(speakers[e.target.value])} value={speakers.findIndex( (i) => i.deviceId === currentSpeaker.deviceId )} > {speakers.map(({ deviceId, label }, i) => ( ))} )} ); }; export default DeviceSelect;