2016-01-12 14:11:15 +00:00
|
|
|
/*
|
|
|
|
Copyright 2015, 2016 OpenMarket Ltd
|
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
*/
|
|
|
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
var React = require('react');
|
2016-02-09 16:55:03 +00:00
|
|
|
var sdk = require('../../../index');
|
2016-01-12 14:11:15 +00:00
|
|
|
|
|
|
|
module.exports = React.createClass({
|
|
|
|
displayName: 'RoomPreviewBar',
|
|
|
|
|
|
|
|
propTypes: {
|
|
|
|
onJoinClick: React.PropTypes.func,
|
2016-01-18 17:39:23 +00:00
|
|
|
onRejectClick: React.PropTypes.func,
|
|
|
|
inviterName: React.PropTypes.string,
|
|
|
|
canJoin: React.PropTypes.bool,
|
|
|
|
canPreview: React.PropTypes.bool,
|
2016-02-09 16:55:03 +00:00
|
|
|
spinner: React.PropTypes.bool,
|
2016-01-12 14:11:15 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
getDefaultProps: function() {
|
|
|
|
return {
|
|
|
|
onJoinClick: function() {},
|
2016-01-18 17:39:23 +00:00
|
|
|
canJoin: false,
|
|
|
|
canPreview: true,
|
2016-01-12 14:11:15 +00:00
|
|
|
};
|
|
|
|
},
|
|
|
|
|
|
|
|
render: function() {
|
2016-01-18 17:39:23 +00:00
|
|
|
var joinBlock, previewBlock;
|
2016-01-12 14:11:15 +00:00
|
|
|
|
2016-02-09 16:55:03 +00:00
|
|
|
if (this.props.spinner) {
|
|
|
|
var Spinner = sdk.getComponent("elements.Spinner");
|
|
|
|
return (<div className="mx_RoomPreviewBar">
|
|
|
|
<Spinner />
|
|
|
|
</div>);
|
|
|
|
}
|
|
|
|
|
2016-01-18 20:18:46 +00:00
|
|
|
if (this.props.inviterName) {
|
2016-01-18 17:39:23 +00:00
|
|
|
joinBlock = (
|
|
|
|
<div>
|
|
|
|
<div className="mx_RoomPreviewBar_invite_text">
|
|
|
|
You have been invited to join this room by { this.props.inviterName }
|
|
|
|
</div>
|
|
|
|
<div className="mx_RoomPreviewBar_join_text">
|
2016-01-18 20:18:46 +00:00
|
|
|
Would you like to <a onClick={ this.props.onJoinClick }>accept</a> or <a onClick={ this.props.onRejectClick }>decline</a> this invitation?
|
2016-01-18 17:39:23 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
else if (this.props.canJoin) {
|
2016-01-12 14:11:15 +00:00
|
|
|
joinBlock = (
|
2016-01-18 19:56:56 +00:00
|
|
|
<div>
|
|
|
|
<div className="mx_RoomPreviewBar_join_text">
|
|
|
|
Would you like to <a onClick={ this.props.onJoinClick }>join</a> this room?
|
|
|
|
</div>
|
2016-01-12 14:11:15 +00:00
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2016-01-18 17:39:23 +00:00
|
|
|
if (this.props.canPreview) {
|
|
|
|
previewBlock = (
|
2016-01-12 14:11:15 +00:00
|
|
|
<div className="mx_RoomPreviewBar_preview_text">
|
2016-01-18 17:39:23 +00:00
|
|
|
This is a preview of this room. Room interactions have been disabled.
|
2016-01-12 14:11:15 +00:00
|
|
|
</div>
|
2016-01-18 17:39:23 +00:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
return (
|
|
|
|
<div className="mx_RoomPreviewBar">
|
2016-01-18 19:56:56 +00:00
|
|
|
<div className="mx_RoomPreviewBar_wrapper">
|
|
|
|
{ joinBlock }
|
|
|
|
{ previewBlock }
|
|
|
|
</div>
|
2016-01-12 14:11:15 +00:00
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
});
|