Persist various things in localstorage.
This commit is contained in:
@@ -47,6 +47,7 @@ const Me = (props) =>
|
||||
const {
|
||||
roomClient,
|
||||
me,
|
||||
settings,
|
||||
activeSpeaker,
|
||||
style,
|
||||
advancedMode,
|
||||
@@ -83,6 +84,7 @@ const Me = (props) =>
|
||||
isMe
|
||||
advancedMode={advancedMode}
|
||||
peer={me}
|
||||
displayName={settings.displayName}
|
||||
showPeerInfo
|
||||
videoTrack={webcamProducer ? webcamProducer.track : null}
|
||||
videoVisible={videoVisible}
|
||||
@@ -121,6 +123,7 @@ Me.propTypes =
|
||||
roomClient : PropTypes.any.isRequired,
|
||||
advancedMode : PropTypes.bool,
|
||||
me : appPropTypes.Me.isRequired,
|
||||
settings : PropTypes.object,
|
||||
activeSpeaker : PropTypes.bool,
|
||||
micProducer : appPropTypes.Producer,
|
||||
webcamProducer : appPropTypes.Producer,
|
||||
@@ -134,6 +137,7 @@ const mapStateToProps = (state) =>
|
||||
return {
|
||||
me : state.me,
|
||||
...meProducersSelector(state),
|
||||
settings : state.settings,
|
||||
activeSpeaker : state.me.name === state.room.activeSpeakerName
|
||||
};
|
||||
};
|
||||
@@ -148,6 +152,7 @@ export default withRoomContext(connect(
|
||||
return (
|
||||
prev.me === next.me &&
|
||||
prev.producers === next.producers &&
|
||||
prev.settings === next.settings &&
|
||||
prev.room.activeSpeakerName === next.room.activeSpeakerName
|
||||
);
|
||||
}
|
||||
|
||||
@@ -287,6 +287,7 @@ const Peer = (props) =>
|
||||
<VideoView
|
||||
advancedMode={advancedMode}
|
||||
peer={peer}
|
||||
displayName={peer.displayName}
|
||||
showPeerInfo
|
||||
videoTrack={webcamConsumer ? webcamConsumer.track : null}
|
||||
videoVisible={videoVisible}
|
||||
|
||||
@@ -122,8 +122,8 @@ ChatInput.propTypes =
|
||||
|
||||
const mapStateToProps = (state) =>
|
||||
({
|
||||
displayName : state.me.displayName,
|
||||
picture : state.me.picture
|
||||
displayName : state.settings.displayName,
|
||||
picture : state.settings.picture
|
||||
});
|
||||
|
||||
export default withRoomContext(
|
||||
@@ -135,8 +135,8 @@ export default withRoomContext(
|
||||
areStatesEqual : (next, prev) =>
|
||||
{
|
||||
return (
|
||||
prev.me.displayName === next.me.displayName &&
|
||||
prev.me.picture === next.me.picture
|
||||
prev.settings.displayName === next.settings.displayName &&
|
||||
prev.settings.picture === next.settings.picture
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,10 +75,11 @@ const ListMe = (props) =>
|
||||
{
|
||||
const {
|
||||
me,
|
||||
settings,
|
||||
classes
|
||||
} = props;
|
||||
|
||||
const picture = me.picture || EmptyAvatar;
|
||||
const picture = settings.picture || EmptyAvatar;
|
||||
|
||||
return (
|
||||
<li className={classes.root}>
|
||||
@@ -86,7 +87,7 @@ const ListMe = (props) =>
|
||||
<img alt='My avatar' className={classes.avatar} src={picture} />
|
||||
|
||||
<div className={classes.peerInfo}>
|
||||
{me.displayName}
|
||||
{settings.displayName}
|
||||
</div>
|
||||
|
||||
<div className={classes.indicators}>
|
||||
@@ -102,12 +103,14 @@ const ListMe = (props) =>
|
||||
|
||||
ListMe.propTypes =
|
||||
{
|
||||
me : appPropTypes.Me.isRequired,
|
||||
classes : PropTypes.object.isRequired
|
||||
me : appPropTypes.Me.isRequired,
|
||||
settings : PropTypes.object.isRequired,
|
||||
classes : PropTypes.object.isRequired
|
||||
};
|
||||
|
||||
const mapStateToProps = (state) => ({
|
||||
me : state.me
|
||||
me : state.me,
|
||||
settings : state.settings
|
||||
});
|
||||
|
||||
export default connect(
|
||||
@@ -118,7 +121,8 @@ export default connect(
|
||||
areStatesEqual : (next, prev) =>
|
||||
{
|
||||
return (
|
||||
prev.me === next.me
|
||||
prev.me === next.me &&
|
||||
prev.settings === next.settings
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,6 +176,10 @@ class Room extends React.PureComponent
|
||||
|
||||
componentDidMount()
|
||||
{
|
||||
const { roomClient } = this.props;
|
||||
|
||||
roomClient.join();
|
||||
|
||||
if (this.fullscreen.fullscreenEnabled)
|
||||
{
|
||||
this.fullscreen.addEventListener('fullscreenchange', this.handleFullscreenChange);
|
||||
@@ -220,6 +224,7 @@ class Room extends React.PureComponent
|
||||
const {
|
||||
roomClient,
|
||||
room,
|
||||
advancedMode,
|
||||
myPicture,
|
||||
loggedIn,
|
||||
loginEnabled,
|
||||
@@ -277,9 +282,9 @@ class Room extends React.PureComponent
|
||||
This website uses cookies to enhance the user experience.
|
||||
</CookieConsent>
|
||||
|
||||
<FullScreenView advancedMode={room.advancedMode} />
|
||||
<FullScreenView advancedMode={advancedMode} />
|
||||
|
||||
<VideoWindow advancedMode={room.advancedMode} />
|
||||
<VideoWindow advancedMode={advancedMode} />
|
||||
|
||||
<AudioPeers />
|
||||
|
||||
@@ -377,7 +382,7 @@ class Room extends React.PureComponent
|
||||
</Hidden>
|
||||
</nav>
|
||||
|
||||
<View advancedMode={room.advancedMode} />
|
||||
<View advancedMode={advancedMode} />
|
||||
|
||||
<Sidebar />
|
||||
|
||||
@@ -392,6 +397,7 @@ Room.propTypes =
|
||||
{
|
||||
roomClient : PropTypes.object.isRequired,
|
||||
room : appPropTypes.Room.isRequired,
|
||||
advancedMode : PropTypes.bool.isRequired,
|
||||
myPicture : PropTypes.string,
|
||||
loggedIn : PropTypes.bool.isRequired,
|
||||
loginEnabled : PropTypes.bool.isRequired,
|
||||
@@ -407,6 +413,7 @@ Room.propTypes =
|
||||
const mapStateToProps = (state) =>
|
||||
({
|
||||
room : state.room,
|
||||
advancedMode : state.settings.advancedMode,
|
||||
loggedIn : state.me.loggedIn,
|
||||
loginEnabled : state.me.loginEnabled,
|
||||
myPicture : state.me.picture,
|
||||
@@ -445,7 +452,8 @@ export default withRoomContext(connect(
|
||||
prev.me.picture === next.me.picture &&
|
||||
prev.toolarea.toolAreaOpen === next.toolarea.toolAreaOpen &&
|
||||
prev.toolarea.unreadMessages === next.toolarea.unreadMessages &&
|
||||
prev.toolarea.unreadFiles === next.toolarea.unreadFiles
|
||||
prev.toolarea.unreadFiles === next.toolarea.unreadFiles &&
|
||||
prev.settings.advancedMode === next.settings.advancedMode
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,6 +63,7 @@ const Settings = ({
|
||||
roomClient,
|
||||
room,
|
||||
me,
|
||||
settings,
|
||||
onToggleAdvancedMode,
|
||||
// handleChangeMode,
|
||||
handleCloseSettings,
|
||||
@@ -96,7 +97,7 @@ const Settings = ({
|
||||
<form className={classes.setting} autoComplete='off'>
|
||||
<FormControl className={classes.formControl}>
|
||||
<Select
|
||||
value={me.selectedWebcam || ''}
|
||||
value={settings.selectedWebcam || ''}
|
||||
onChange={(event) =>
|
||||
{
|
||||
if (event.target.value)
|
||||
@@ -127,7 +128,7 @@ const Settings = ({
|
||||
<form className={classes.setting} autoComplete='off'>
|
||||
<FormControl className={classes.formControl}>
|
||||
<Select
|
||||
value={me.selectedAudioDevice || ''}
|
||||
value={settings.selectedAudioDevice || ''}
|
||||
onChange={(event) =>
|
||||
{
|
||||
if (event.target.value)
|
||||
@@ -157,7 +158,7 @@ const Settings = ({
|
||||
</form>
|
||||
<FormControlLabel
|
||||
className={classes.setting}
|
||||
control={<Checkbox checked={room.advancedMode} onChange={onToggleAdvancedMode} value='advancedMode' />}
|
||||
control={<Checkbox checked={settings.advancedMode} onChange={onToggleAdvancedMode} value='advancedMode' />}
|
||||
label='Advanced mode'
|
||||
/>
|
||||
{ /* <form className={classes.setting} autoComplete='off'>
|
||||
@@ -195,6 +196,7 @@ Settings.propTypes =
|
||||
roomClient : PropTypes.any.isRequired,
|
||||
me : appPropTypes.Me.isRequired,
|
||||
room : appPropTypes.Room.isRequired,
|
||||
settings : PropTypes.object.isRequired,
|
||||
onToggleAdvancedMode : PropTypes.func.isRequired,
|
||||
handleChangeMode : PropTypes.func.isRequired,
|
||||
handleCloseSettings : PropTypes.func.isRequired,
|
||||
@@ -204,8 +206,9 @@ Settings.propTypes =
|
||||
const mapStateToProps = (state) =>
|
||||
{
|
||||
return {
|
||||
me : state.me,
|
||||
room : state.room
|
||||
me : state.me,
|
||||
room : state.room,
|
||||
settings : state.settings
|
||||
};
|
||||
};
|
||||
|
||||
@@ -224,7 +227,8 @@ export default withRoomContext(connect(
|
||||
{
|
||||
return (
|
||||
prev.me === next.me &&
|
||||
prev.room === next.room
|
||||
prev.room === next.room &&
|
||||
prev.settings === next.settings
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -160,6 +160,7 @@ class VideoView extends React.PureComponent
|
||||
const {
|
||||
isMe,
|
||||
peer,
|
||||
displayName,
|
||||
showPeerInfo,
|
||||
videoContain,
|
||||
advancedMode,
|
||||
@@ -206,8 +207,8 @@ class VideoView extends React.PureComponent
|
||||
<div className={classes.peer}>
|
||||
{ isMe ?
|
||||
<EditableInput
|
||||
value={peer.displayName}
|
||||
propName='displayName'
|
||||
value={displayName}
|
||||
propName='newDisplayName'
|
||||
className={classnames(classes.displayNameEdit, 'display-name')}
|
||||
classLoading='loading'
|
||||
classInvalid='invalid'
|
||||
@@ -217,11 +218,11 @@ class VideoView extends React.PureComponent
|
||||
autoCorrect : false,
|
||||
spellCheck : false
|
||||
}}
|
||||
onChange={({ displayName }) => onChangeDisplayName(displayName)}
|
||||
onChange={({ newDisplayName }) => onChangeDisplayName(newDisplayName)}
|
||||
/>
|
||||
:
|
||||
<span className={classes.displayNameStatic}>
|
||||
{peer.displayName}
|
||||
{displayName}
|
||||
</span>
|
||||
}
|
||||
|
||||
@@ -336,6 +337,7 @@ VideoView.propTypes =
|
||||
isMe : PropTypes.bool,
|
||||
peer : PropTypes.oneOfType(
|
||||
[ appPropTypes.Me, appPropTypes.Peer ]),
|
||||
displayName : PropTypes.string,
|
||||
showPeerInfo : PropTypes.bool,
|
||||
videoContain : PropTypes.bool,
|
||||
advancedMode : PropTypes.bool,
|
||||
|
||||
@@ -17,16 +17,11 @@ export const Device = PropTypes.shape(
|
||||
|
||||
export const Me = PropTypes.shape(
|
||||
{
|
||||
name : PropTypes.string.isRequired,
|
||||
displayName : PropTypes.string,
|
||||
displayNameSet : PropTypes.bool.isRequired,
|
||||
device : Device.isRequired,
|
||||
canSendMic : PropTypes.bool.isRequired,
|
||||
canSendWebcam : PropTypes.bool.isRequired,
|
||||
webcamInProgress : PropTypes.bool.isRequired,
|
||||
audioOnly : PropTypes.bool.isRequired,
|
||||
audioOnlyInProgress : PropTypes.bool.isRequired,
|
||||
restartIceInProgress : PropTypes.bool.isRequired
|
||||
name : PropTypes.string.isRequired,
|
||||
device : Device.isRequired,
|
||||
canSendMic : PropTypes.bool.isRequired,
|
||||
canSendWebcam : PropTypes.bool.isRequired,
|
||||
webcamInProgress : PropTypes.bool.isRequired
|
||||
});
|
||||
|
||||
export const Producer = PropTypes.shape(
|
||||
|
||||
Reference in New Issue
Block a user