diff --git a/app/lib/components/Settings.jsx b/app/lib/components/Settings.jsx index 9cc270d..d0d3572 100644 --- a/app/lib/components/Settings.jsx +++ b/app/lib/components/Settings.jsx @@ -14,112 +14,75 @@ const modes = [ { label : 'Filmstrip view' } ]; -class Settings extends React.Component +const findOption = (options, value) => options.find((option) => option.value === value); + +const Settings = ({ + room, me, onToggleAdvancedMode, handleChangeWebcam, + handleChangeAudioDevice, handleChangeMode +}) => { - state = { - selectedCamera : null, - selectedAudioDevice : null, - selectedMode : modes[0] - }; + let webcams; + let webcamText; - handleChangeWebcam = (webcam) => - { - this.props.handleChangeWebcam(webcam.value); + if (me.canChangeWebcam) + webcamText = 'Select camera'; + else + webcamText = 'Unable to select camera'; - this.setState({ - selectedCamera : webcam - }); - } + if (me.webcamDevices) + webcams = Array.from(me.webcamDevices.values()); + else + webcams = []; - handleChangeAudioDevice = (device) => - { - this.props.handleChangeAudioDevice(device.value); + let audioDevices; + let audioDevicesText; - this.setState({ - selectedAudioDevice : device - }); - } - - handleChangeMode = (mode) => - { - this.setState({ - selectedMode : mode - }); + if (me.canChangeAudioDevice) + audioDevicesText = 'Select audio input device'; + else + audioDevicesText = 'Unable to select audio input device'; - this.props.handleChangeMode(mode.value); - }; + if (me.audioDevices) + audioDevices = Array.from(me.audioDevices.values()); + else + audioDevices = []; - render() - { - const { - room, - me, - onToggleAdvancedMode - } = this.props; + return ( +