Merge pull request #325 from matrix-org/dbkr/room_not_exist_error
Display an error message if room not found
This commit is contained in:
commit
a4329aa346
2 changed files with 39 additions and 7 deletions
|
@ -117,6 +117,11 @@ module.exports = React.createClass({
|
||||||
guestsCanJoin: false,
|
guestsCanJoin: false,
|
||||||
canPeek: false,
|
canPeek: false,
|
||||||
|
|
||||||
|
// error object, as from the matrix client/server API
|
||||||
|
// If we failed to load information about the room,
|
||||||
|
// store the error here.
|
||||||
|
roomLoadError: null,
|
||||||
|
|
||||||
// this is true if we are fully scrolled-down, and are looking at
|
// this is true if we are fully scrolled-down, and are looking at
|
||||||
// the end of the live timeline. It has the effect of hiding the
|
// the end of the live timeline. It has the effect of hiding the
|
||||||
// 'scroll to bottom' knob, among a couple of other things.
|
// 'scroll to bottom' knob, among a couple of other things.
|
||||||
|
@ -163,6 +168,7 @@ module.exports = React.createClass({
|
||||||
}, (err) => {
|
}, (err) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
roomLoading: false,
|
roomLoading: false,
|
||||||
|
roomLoadError: err,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
@ -1282,6 +1288,7 @@ module.exports = React.createClass({
|
||||||
|
|
||||||
// We have no room object for this room, only the ID.
|
// We have no room object for this room, only the ID.
|
||||||
// We've got to this room by following a link, possibly a third party invite.
|
// We've got to this room by following a link, possibly a third party invite.
|
||||||
|
var room_alias = this.props.roomAddress[0] == '#' ? this.props.roomAddress : null;
|
||||||
return (
|
return (
|
||||||
<div className="mx_RoomView">
|
<div className="mx_RoomView">
|
||||||
<RoomHeader ref="header"
|
<RoomHeader ref="header"
|
||||||
|
@ -1292,7 +1299,8 @@ module.exports = React.createClass({
|
||||||
<div className="mx_RoomView_auxPanel">
|
<div className="mx_RoomView_auxPanel">
|
||||||
<RoomPreviewBar onJoinClick={ this.onJoinButtonClicked }
|
<RoomPreviewBar onJoinClick={ this.onJoinButtonClicked }
|
||||||
onRejectClick={ this.onRejectThreepidInviteButtonClicked }
|
onRejectClick={ this.onRejectThreepidInviteButtonClicked }
|
||||||
canJoin={ true } canPreview={ false }
|
canPreview={ false } error={ this.state.roomLoadError }
|
||||||
|
roomAlias={room_alias}
|
||||||
spinner={this.state.joining}
|
spinner={this.state.joining}
|
||||||
inviterName={inviterName}
|
inviterName={inviterName}
|
||||||
invitedEmail={invitedEmail}
|
invitedEmail={invitedEmail}
|
||||||
|
@ -1330,7 +1338,7 @@ module.exports = React.createClass({
|
||||||
<RoomPreviewBar onJoinClick={ this.onJoinButtonClicked }
|
<RoomPreviewBar onJoinClick={ this.onJoinButtonClicked }
|
||||||
onRejectClick={ this.onRejectButtonClicked }
|
onRejectClick={ this.onRejectButtonClicked }
|
||||||
inviterName={ inviterName }
|
inviterName={ inviterName }
|
||||||
canJoin={ true } canPreview={ false }
|
canPreview={ false }
|
||||||
spinner={this.state.joining}
|
spinner={this.state.joining}
|
||||||
room={this.state.room}
|
room={this.state.room}
|
||||||
/>
|
/>
|
||||||
|
@ -1400,7 +1408,7 @@ module.exports = React.createClass({
|
||||||
invitedEmail = this.props.thirdPartyInvite.invitedEmail;
|
invitedEmail = this.props.thirdPartyInvite.invitedEmail;
|
||||||
}
|
}
|
||||||
aux = (
|
aux = (
|
||||||
<RoomPreviewBar onJoinClick={this.onJoinButtonClicked} canJoin={true}
|
<RoomPreviewBar onJoinClick={this.onJoinButtonClicked}
|
||||||
onRejectClick={this.onRejectThreepidInviteButtonClicked}
|
onRejectClick={this.onRejectThreepidInviteButtonClicked}
|
||||||
spinner={this.state.joining}
|
spinner={this.state.joining}
|
||||||
inviterName={inviterName}
|
inviterName={inviterName}
|
||||||
|
|
|
@ -33,16 +33,24 @@ module.exports = React.createClass({
|
||||||
|
|
||||||
// If invited by 3rd party invite, the email address the invite was sent to
|
// If invited by 3rd party invite, the email address the invite was sent to
|
||||||
invitedEmail: React.PropTypes.string,
|
invitedEmail: React.PropTypes.string,
|
||||||
canJoin: React.PropTypes.bool,
|
|
||||||
|
// A standard client/server API error object. If supplied, indicates that the
|
||||||
|
// caller was unable to fetch details about the room for the given reason.
|
||||||
|
error: React.PropTypes.object,
|
||||||
|
|
||||||
canPreview: React.PropTypes.bool,
|
canPreview: React.PropTypes.bool,
|
||||||
spinner: React.PropTypes.bool,
|
spinner: React.PropTypes.bool,
|
||||||
room: React.PropTypes.object,
|
room: React.PropTypes.object,
|
||||||
|
|
||||||
|
// The alias that was used to access this room, if appropriate
|
||||||
|
// If given, this will be how the room is referred to (eg.
|
||||||
|
// in error messages).
|
||||||
|
roomAlias: React.PropTypes.object,
|
||||||
},
|
},
|
||||||
|
|
||||||
getDefaultProps: function() {
|
getDefaultProps: function() {
|
||||||
return {
|
return {
|
||||||
onJoinClick: function() {},
|
onJoinClick: function() {},
|
||||||
canJoin: false,
|
|
||||||
canPreview: true,
|
canPreview: true,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
@ -115,8 +123,24 @@ module.exports = React.createClass({
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (this.props.canJoin) {
|
else if (this.props.error) {
|
||||||
var name = this.props.room ? this.props.room.name : "";
|
var name = this.props.roomAlias || "This room";
|
||||||
|
var error;
|
||||||
|
if (this.props.error.errcode == 'M_NOT_FOUND') {
|
||||||
|
error = name + " does not exist";
|
||||||
|
} else {
|
||||||
|
error = name + " is not accessible at this time";
|
||||||
|
}
|
||||||
|
joinBlock = (
|
||||||
|
<div>
|
||||||
|
<div className="mx_RoomPreviewBar_join_text">
|
||||||
|
{ error }
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var name = this.props.room ? this.props.room.name : (this.props.room_alias || "");
|
||||||
name = name ? <b>{ name }</b> : "a room";
|
name = name ? <b>{ name }</b> : "a room";
|
||||||
joinBlock = (
|
joinBlock = (
|
||||||
<div>
|
<div>
|
||||||
|
|
Loading…
Reference in a new issue