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;