Skip to content

Commit

Permalink
Merge pull request #1620 from matrix-org/rav/fix_memberpresence_avatar
Browse files Browse the repository at this point in the history
MemberPresenceAvatar: fix null references
  • Loading branch information
richvdh committed Nov 21, 2017
2 parents 361e4c8 + 91dbe95 commit b2e80a8
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions src/components/views/avatars/MemberPresenceAvatar.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import dispatcher from "../../../dispatcher";
import * as ContextualMenu from "../../structures/ContextualMenu";
import SettingsStore from "../../../settings/SettingsStore";

// This is an avatar with presence information and controls on it.
module.exports = React.createClass({
displayName: 'MemberPresenceAvatar',

Expand All @@ -44,8 +45,15 @@ module.exports = React.createClass({
},

getInitialState: function() {
const presenceState = this.props.member.user.presence;
const presenceMessage = this.props.member.user.presenceStatusMsg;
let presenceState = null;
let presenceMessage = null;

// RoomMembers do not necessarily have a user.
if (this.props.member.user) {
presenceState = this.props.member.user.presence;
presenceMessage = this.props.member.user.presenceStatusMsg;
}

return {
status: presenceState,
message: presenceMessage,
Expand Down Expand Up @@ -109,6 +117,8 @@ module.exports = React.createClass({
});

e.stopPropagation();

// XXX NB the following assumes that user is non-null, which is not valid
// const presenceState = this.props.member.user.presence;
// const presenceLastActiveAgo = this.props.member.user.lastActiveAgo;
// const presenceLastTs = this.props.member.user.lastPresenceTs;
Expand All @@ -133,7 +143,8 @@ module.exports = React.createClass({
);

// LABS: Disable presence management functions for now
if (!SettingsStore.isFeatureEnabled("feature_presence_management")) {
// Also disable the presence information if there's no status information
if (!SettingsStore.isFeatureEnabled("feature_presence_management") || !this.state.status) {
statusNode = null;
onClickFn = null;
}
Expand Down

0 comments on commit b2e80a8

Please sign in to comment.