Added support for locking rooms

This commit is contained in:
Håvar Aambø Fosstveit
2019-02-15 12:23:05 +01:00
parent 4fd3c6c8b1
commit 1c5f90cff6
11 changed files with 331 additions and 108 deletions
+31 -3
View File
@@ -59,11 +59,13 @@ class Sidebar extends Component
roomClient,
toolbarsVisible,
me,
screenProducer
screenProducer,
locked
} = this.props;
let screenState;
let screenTip;
let lockState = 'unlocked';
if (me.needExtension)
{
@@ -86,6 +88,11 @@ class Sidebar extends Component
screenTip = 'Start screen sharing';
}
if (locked)
{
lockState = 'locked';
}
return (
<div
className={classnames('sidebar room-controls', {
@@ -161,6 +168,25 @@ class Sidebar extends Component
</Otherwise>
</Choose>
</If>
<div
className={classnames('button', 'lock', lockState, {
on : locked
})}
data-tip={`Room is ${lockState}`}
data-place='right'
data-type='dark'
onClick={() =>
{
if (locked)
{
roomClient.unlockRoom();
}
else
{
roomClient.lockRoom();
}
}}
/>
<div
className={classnames('button', 'raise-hand', {
on : me.raiseHand,
@@ -188,7 +214,8 @@ Sidebar.propTypes = {
roomClient : PropTypes.any.isRequired,
toolbarsVisible : PropTypes.bool.isRequired,
me : appPropTypes.Me.isRequired,
screenProducer : appPropTypes.Producer
screenProducer : appPropTypes.Producer,
locked : PropTypes.bool.isRequired
};
const mapStateToProps = (state) =>
@@ -196,7 +223,8 @@ const mapStateToProps = (state) =>
toolbarsVisible : state.room.toolbarsVisible,
screenProducer : Object.values(state.producers)
.find((producer) => producer.source === 'screen'),
me : state.me
me : state.me,
locked : state.room.locked
});
export default withRoomContext(connect(