import React from 'react'; import { useMediaDevices } from '@dailyjs/shared/contexts/MediaDeviceProvider'; import { Field } from '../Field'; import { SelectInput } from '../Input'; export const DeviceSelect = () => { const { cams, mics, speakers, currentDevices, setCamDevice, setMicDevice, setSpeakersDevice, } = useMediaDevices(); if (!currentDevices) { return
Loading devices...
; } return ( <> setCamDevice(cams[e.target.value])} value={cams.findIndex( (i) => i.deviceId === currentDevices.camera.deviceId )} > {cams.map(({ deviceId, label }, i) => ( ))} setMicDevice(mics[e.target.value])} value={mics.findIndex( (i) => i.deviceId === currentDevices.mic.deviceId )} > {mics.map(({ deviceId, label }, i) => ( ))} {/** * Note: Safari does not support selection audio output devices */} {speakers.length > 0 && ( setSpeakersDevice(speakers[e.target.value])} value={speakers.findIndex( (i) => i.deviceId === currentDevices.speaker.deviceId )} > {speakers.map(({ deviceId, label }, i) => ( ))} )} ); }; export default DeviceSelect;