diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js index 14273fc95f..3d3537e067 100644 --- a/src/components/structures/RoomView.js +++ b/src/components/structures/RoomView.js @@ -117,6 +117,7 @@ module.exports = React.createClass({ guestsCanJoin: false, canPeek: false, showApps: false, + isPeeking: false, // error object, as from the matrix client/server API // If we failed to load information about the room, @@ -266,6 +267,7 @@ module.exports = React.createClass({ console.log("Attempting to peek into room %s", roomId); this.setState({ peekLoading: true, + isPeeking: true, // this will change to false if peeking fails }); MatrixClientPeg.get().peekInRoom(roomId).then((room) => { this.setState({ @@ -274,6 +276,11 @@ module.exports = React.createClass({ }); this._onRoomLoaded(room); }, (err) => { + // Stop peeking if anything went wrong + this.setState({ + isPeeking: false, + }); + // This won't necessarily be a MatrixError, but we duck-type // here and say if it's got an 'errcode' key with the right value, // it means we can't peek. @@ -290,6 +297,7 @@ module.exports = React.createClass({ } else if (room) { // Stop peeking because we have joined this room previously MatrixClientPeg.get().stopPeeking(); + this.setState({isPeeking: false}); } }, @@ -1728,8 +1736,8 @@ module.exports = React.createClass({