diff --git a/src/skins/vector/views/organisms/RoomView.js b/src/skins/vector/views/organisms/RoomView.js index 0a2d2411a2..2dc63cacc5 100644 --- a/src/skins/vector/views/organisms/RoomView.js +++ b/src/skins/vector/views/organisms/RoomView.js @@ -63,6 +63,25 @@ module.exports = React.createClass({ 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 + }); + }); + }, + onSearchClick: function() { this.setState({ searching: true }); }, @@ -111,7 +130,7 @@ module.exports = React.createClass({ var myUserId = MatrixClientPeg.get().credentials.userId; if (this.state.room.currentState.members[myUserId].membership == 'invite') { - if (this.state.joining) { + if (this.state.joining || this.state.rejecting) { return (
@@ -121,6 +140,7 @@ module.exports = React.createClass({ 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 var joinErrorText = this.state.joinError ? "Failed to join room!" : ""; + var rejectErrorText = this.state.rejectError ? "Failed to reject invite!" : ""; return (
@@ -128,7 +148,9 @@ module.exports = React.createClass({
{inviteEvent.user_id} has invited you to a room

+
{joinErrorText}
+
{rejectErrorText}
);