Handle errors when previewing rooms more safely

Fixes https://github.com/vector-im/riot-web/issues/12500

See https://github.com/matrix-org/synapse/issues/6992 for additional context.
This commit is contained in:
Travis Ralston 2020-02-25 16:11:07 -07:00
parent 19ee95d041
commit 9be61497fb

View file

@ -342,7 +342,7 @@ export default createReactClass({
peekLoading: false, peekLoading: false,
}); });
this._onRoomLoaded(room); this._onRoomLoaded(room);
}, (err) => { }).catch((err) => {
if (this.unmounted) { if (this.unmounted) {
return; return;
} }
@ -355,7 +355,7 @@ export default createReactClass({
// This won't necessarily be a MatrixError, but we duck-type // 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, // here and say if it's got an 'errcode' key with the right value,
// it means we can't peek. // it means we can't peek.
if (err.errcode == "M_GUEST_ACCESS_FORBIDDEN") { if (err.errcode === "M_GUEST_ACCESS_FORBIDDEN" || err.errcode === 'M_FORBIDDEN') {
// This is fine: the room just isn't peekable (we assume). // This is fine: the room just isn't peekable (we assume).
this.setState({ this.setState({
peekLoading: false, peekLoading: false,
@ -365,8 +365,6 @@ export default createReactClass({
} }
}); });
} else if (room) { } else if (room) {
//viewing a previously joined room, try to lazy load members
// Stop peeking because we have joined this room previously // Stop peeking because we have joined this room previously
MatrixClientPeg.get().stopPeeking(); MatrixClientPeg.get().stopPeeking();
this.setState({isPeeking: false}); this.setState({isPeeking: false});