Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit 83c2ae2

Browse files
authored
Merge pull request #5180 from matrix-org/t3chguy/fix/15123
null-guard roomId in RightPanel and pass Room to UserView
2 parents 15aafa0 + 27a65ff commit 83c2ae2

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

src/components/structures/RightPanel.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -225,11 +225,12 @@ export default class RightPanel extends React.Component {
225225
const GroupRoomInfo = sdk.getComponent('groups.GroupRoomInfo');
226226

227227
let panel = <div />;
228+
const roomId = this.props.room ? this.props.room.roomId : undefined;
228229

229230
switch (this.state.phase) {
230231
case RightPanelPhases.RoomMemberList:
231-
if (this.props.room.roomId) {
232-
panel = <MemberList roomId={this.props.room.roomId} key={this.props.room.roomId} />;
232+
if (roomId) {
233+
panel = <MemberList roomId={roomId} key={roomId} />;
233234
}
234235
break;
235236
case RightPanelPhases.GroupMemberList:
@@ -244,16 +245,16 @@ export default class RightPanel extends React.Component {
244245
case RightPanelPhases.EncryptionPanel:
245246
panel = <UserInfo
246247
user={this.state.member}
247-
roomId={this.props.room.roomId}
248-
key={this.props.room.roomId || this.state.member.userId}
248+
room={this.props.room}
249+
key={roomId || this.state.member.userId}
249250
onClose={this.onCloseUserInfo}
250251
phase={this.state.phase}
251252
verificationRequest={this.state.verificationRequest}
252253
verificationRequestPromise={this.state.verificationRequestPromise}
253254
/>;
254255
break;
255256
case RightPanelPhases.Room3pidMemberInfo:
256-
panel = <ThirdPartyMemberInfo event={this.state.event} key={this.props.room.roomId} />;
257+
panel = <ThirdPartyMemberInfo event={this.state.event} key={roomId} />;
257258
break;
258259
case RightPanelPhases.GroupMemberInfo:
259260
panel = <UserInfo
@@ -272,7 +273,7 @@ export default class RightPanel extends React.Component {
272273
panel = <NotificationPanel />;
273274
break;
274275
case RightPanelPhases.FilePanel:
275-
panel = <FilePanel roomId={this.props.room.roomId} resizeNotifier={this.props.resizeNotifier} />;
276+
panel = <FilePanel roomId={roomId} resizeNotifier={this.props.resizeNotifier} />;
276277
break;
277278
}
278279

src/components/views/right_panel/UserInfo.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ limitations under the License.
2020
import React, {useCallback, useMemo, useState, useEffect, useContext} from 'react';
2121
import PropTypes from 'prop-types';
2222
import classNames from 'classnames';
23-
import {Group, RoomMember, User} from 'matrix-js-sdk';
23+
import {Group, RoomMember, User, Room} from 'matrix-js-sdk';
2424
import dis from '../../../dispatcher/dispatcher';
2525
import Modal from '../../../Modal';
2626
import * as sdk from '../../../index';
@@ -1471,11 +1471,9 @@ const UserInfoHeader = ({onClose, member, e2eStatus}) => {
14711471
</React.Fragment>;
14721472
};
14731473

1474-
const UserInfo = ({user, groupId, roomId, onClose, phase=RightPanelPhases.RoomMemberInfo, ...props}) => {
1474+
const UserInfo = ({user, groupId, room, onClose, phase=RightPanelPhases.RoomMemberInfo, ...props}) => {
14751475
const cli = useContext(MatrixClientContext);
14761476

1477-
// Load room if we are given a room id and memoize it - this can be undefined for User Info/Group Member Info
1478-
const room = useMemo(() => roomId ? cli.getRoom(roomId) : null, [cli, roomId]);
14791477
// fetch latest room member if we have a room, so we don't show historical information, falling back to user
14801478
const member = useMemo(() => room ? (room.getMember(user.userId) || user) : user, [room, user]);
14811479

@@ -1529,7 +1527,7 @@ UserInfo.propTypes = {
15291527
]).isRequired,
15301528
group: PropTypes.instanceOf(Group),
15311529
groupId: PropTypes.string,
1532-
roomId: PropTypes.string,
1530+
room: PropTypes.instanceOf(Room),
15331531

15341532
onClose: PropTypes.func,
15351533
};

0 commit comments

Comments
 (0)