Very fastidiously check for null/undefined

This commit is contained in:
Zoe 2020-01-10 17:22:09 +00:00
parent df1fd4db72
commit bebfd60daf

View file

@ -57,11 +57,11 @@ module.exports = createReactClass({
getInitialState: function() { getInitialState: function() {
// eslint-disable-next-line camelcase // eslint-disable-next-line camelcase
const { event: { content: { join_rule } } } = const joinRules = this.props.room.currentState.getStateEvents("m.room.join_rules", "");
this.props.room.currentState.getStateEvents("m.room.join_rules", ""); const joinRule = joinRules && joinRules.event && joinRules.event.content && joinRules.event.content.join_rule;
return ({ return ({
join_rule, joinRule,
hover: false, hover: false,
badgeHover: false, badgeHover: false,
contextMenuPosition: null, // DOM bounding box, null if non-shown contextMenuPosition: null, // DOM bounding box, null if non-shown
@ -110,12 +110,14 @@ module.exports = createReactClass({
}, },
onJoinRule: function(ev) { onJoinRule: function(ev) {
if (!ev || !ev.event ) return;
/* eslint-disable camelcase */ /* eslint-disable camelcase */
const { event: { type, room_id } } = ev; const { event: { type, room_id } } = ev;
if (type !== "m.room.join_rules") return; if (type !== "m.room.join_rules") return;
if (room_id !== this.props.room.roomId) return; if (room_id !== this.props.room.roomId) return;
if ( !event.content ) return;
const { event: { content: { join_rule } } } = ev; const { event: { content: { join_rule } } } = ev;
this.setState({ join_rule }); this.setState({ joinRule: join_rule });
/* eslint-enable camelcase */ /* eslint-enable camelcase */
}, },
@ -322,7 +324,7 @@ module.exports = createReactClass({
'mx_RoomTile_noBadges': !badges, 'mx_RoomTile_noBadges': !badges,
'mx_RoomTile_transparent': this.props.transparent, 'mx_RoomTile_transparent': this.props.transparent,
'mx_RoomTile_hasSubtext': subtext && !this.props.collapsed, 'mx_RoomTile_hasSubtext': subtext && !this.props.collapsed,
'mx_RoomTile_isPrivate': this.state.join_rule == "invite" && !dmUserId, 'mx_RoomTile_isPrivate': this.state.joinRule == "invite" && !dmUserId,
}); });
const avatarClasses = classNames({ const avatarClasses = classNames({