Add reject button and impl

pull/298/head
Kegan Dougal 2015-10-30 17:18:25 +00:00
parent 3db86b1f59
commit 668234be4c
1 changed files with 23 additions and 1 deletions

View File

@ -63,6 +63,25 @@ module.exports = React.createClass({
this.setState(this.getInitialState()); this.setState(this.getInitialState());
}, },
onRejectButtonClicked: function(ev) {
var self = this;
this.setState({
rejecting: true
});
MatrixClientPeg.get().leave(this.props.roomId).done(function() {
dis.dispatch({ action: 'view_next_room' });
self.setState({
rejecting: false
});
}, function(err) {
console.error("Failed to reject invite: %s", err);
self.setState({
rejecting: false,
rejectError: err
});
});
},
onConferenceNotificationClick: function() { onConferenceNotificationClick: function() {
dis.dispatch({ dis.dispatch({
action: 'place_call', action: 'place_call',
@ -106,7 +125,7 @@ module.exports = React.createClass({
var myUserId = MatrixClientPeg.get().credentials.userId; var myUserId = MatrixClientPeg.get().credentials.userId;
if (this.state.room.currentState.members[myUserId].membership == 'invite') { if (this.state.room.currentState.members[myUserId].membership == 'invite') {
if (this.state.joining) { if (this.state.joining || this.state.rejecting) {
return ( return (
<div className="mx_RoomView"> <div className="mx_RoomView">
<Loader /> <Loader />
@ -116,6 +135,7 @@ module.exports = React.createClass({
var inviteEvent = this.state.room.currentState.members[myUserId].events.member.event; var inviteEvent = this.state.room.currentState.members[myUserId].events.member.event;
// XXX: Leaving this intentionally basic for now because invites are about to change totally // XXX: Leaving this intentionally basic for now because invites are about to change totally
var joinErrorText = this.state.joinError ? "Failed to join room!" : ""; var joinErrorText = this.state.joinError ? "Failed to join room!" : "";
var rejectErrorText = this.state.rejectError ? "Failed to reject invite!" : "";
return ( return (
<div className="mx_RoomView"> <div className="mx_RoomView">
<RoomHeader ref="header" room={this.state.room} simpleHeader="Room invite"/> <RoomHeader ref="header" room={this.state.room} simpleHeader="Room invite"/>
@ -123,7 +143,9 @@ module.exports = React.createClass({
<div>{inviteEvent.user_id} has invited you to a room</div> <div>{inviteEvent.user_id} has invited you to a room</div>
<br/> <br/>
<button ref="joinButton" onClick={this.onJoinButtonClicked}>Join</button> <button ref="joinButton" onClick={this.onJoinButtonClicked}>Join</button>
<button onClick={this.onRejectButtonClicked}>Reject</button>
<div className="error">{joinErrorText}</div> <div className="error">{joinErrorText}</div>
<div className="error">{rejectErrorText}</div>
</div> </div>
</div> </div>
); );