Make Settings inputs controlled
parent
d4e65e0c1b
commit
0c3eb4f154
|
|
@ -8,9 +8,27 @@ import Dropdown from 'react-dropdown';
|
||||||
|
|
||||||
class Settings extends React.Component
|
class Settings extends React.Component
|
||||||
{
|
{
|
||||||
constructor(props)
|
state = {
|
||||||
|
selectedCamera: null,
|
||||||
|
selectedAudioDevice: null
|
||||||
|
};
|
||||||
|
|
||||||
|
handleChangeWebcam = (webcam) =>
|
||||||
{
|
{
|
||||||
super(props);
|
this.props.handleChangeWebcam(webcam);
|
||||||
|
|
||||||
|
this.setState({
|
||||||
|
selectedCamera: webcam
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
handleChangeAudioDevice = (device) =>
|
||||||
|
{
|
||||||
|
this.props.handleChangeAudioDevice(device);
|
||||||
|
|
||||||
|
this.setState({
|
||||||
|
selectedAudioDevice: device
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
render()
|
render()
|
||||||
|
|
@ -18,8 +36,6 @@ class Settings extends React.Component
|
||||||
const {
|
const {
|
||||||
room,
|
room,
|
||||||
me,
|
me,
|
||||||
handleChangeWebcam,
|
|
||||||
handleChangeAudioDevice,
|
|
||||||
onToggleAdvancedMode
|
onToggleAdvancedMode
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
|
||||||
|
|
@ -55,21 +71,24 @@ class Settings extends React.Component
|
||||||
<Dropdown
|
<Dropdown
|
||||||
disabled={!me.canChangeWebcam}
|
disabled={!me.canChangeWebcam}
|
||||||
options={webcams}
|
options={webcams}
|
||||||
onChange={handleChangeWebcam}
|
value={this.state.selectedCamera}
|
||||||
|
onChange={this.handleChangeWebcam}
|
||||||
placeholder={webcamText}
|
placeholder={webcamText}
|
||||||
/>
|
/>
|
||||||
<Dropdown
|
<Dropdown
|
||||||
disabled={!me.canChangeAudioDevice}
|
disabled={!me.canChangeAudioDevice}
|
||||||
options={audioDevices}
|
options={audioDevices}
|
||||||
onChange={handleChangeAudioDevice}
|
value={this.state.selectedAudioDevice}
|
||||||
|
onChange={this.handleChangeAudioDevice}
|
||||||
placeholder={audioDevicesText}
|
placeholder={audioDevicesText}
|
||||||
/>
|
/>
|
||||||
<input
|
<input
|
||||||
|
id='room-mode'
|
||||||
type='checkbox'
|
type='checkbox'
|
||||||
defaultChecked={room.advancedMode}
|
checked={room.advancedMode}
|
||||||
onChange={onToggleAdvancedMode}
|
onChange={onToggleAdvancedMode}
|
||||||
/>
|
/>
|
||||||
<span>Advanced mode</span>
|
<label htmlFor='room-mode'>Advanced mode</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue