Merge pull request #1665 from matrix-org/luke/fix-matrix-chat-logged-in-view-ref

Avoid NPEs by using ref method for collecting loggedInView in MatrixChat
This commit is contained in:
Luke Barnard 2017-12-15 16:30:35 +00:00 committed by GitHub
commit 0a944e0746
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1065,10 +1065,10 @@ export default React.createClass({
// this if we are not scrolled up in the view. To find out, delegate to
// the timeline panel. If the timeline panel doesn't exist, then we assume
// it is safe to reset the timeline.
if (!self.refs.loggedInView) {
if (!self._loggedInView) {
return true;
}
return self.refs.loggedInView.canResetTimelineInRoom(roomId);
return self._loggedInView.canResetTimelineInRoom(roomId);
});
cli.on('sync', function(state, prevState) {
@ -1487,6 +1487,10 @@ export default React.createClass({
return this.props.makeRegistrationUrl(params);
},
_collectLoggedInView: function(ref) {
this._loggedInView = ref;
},
render: function() {
// console.log(`Rendering MatrixChat with view ${this.state.view}`);
@ -1519,7 +1523,7 @@ export default React.createClass({
*/
const LoggedInView = sdk.getComponent('structures.LoggedInView');
return (
<LoggedInView ref="loggedInView" matrixClient={MatrixClientPeg.get()}
<LoggedInView ref={this._collectLoggedInView} matrixClient={MatrixClientPeg.get()}
onRoomCreated={this.onRoomCreated}
onUserSettingsClose={this.onUserSettingsClose}
onRegistered={this.onRegistered}