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

Commit 3ffe752

Browse files
authored
Fix RoomUpgradeWarningBar exploding (#7214)
1 parent dbd1484 commit 3ffe752

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

Diff for: src/components/views/rooms/RoomUpgradeWarningBar.tsx

+14-8
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ import { RoomState } from 'matrix-js-sdk/src/models/room-state';
2222
import Modal from '../../../Modal';
2323

2424
import { _t } from '../../../languageHandler';
25-
import { MatrixClientPeg } from "../../../MatrixClientPeg";
2625
import { replaceableComponent } from "../../../utils/replaceableComponent";
2726
import RoomUpgradeDialog from '../dialogs/RoomUpgradeDialog';
2827
import AccessibleButton from '../elements/AccessibleButton';
28+
import MatrixClientContext from "../../../contexts/MatrixClientContext";
2929

3030
interface IProps {
3131
room: Room;
@@ -37,18 +37,24 @@ interface IState {
3737

3838
@replaceableComponent("views.rooms.RoomUpgradeWarningBar")
3939
export default class RoomUpgradeWarningBar extends React.PureComponent<IProps, IState> {
40-
public componentDidMount(): void {
40+
static contextType = MatrixClientContext;
41+
public context!: React.ContextType<typeof MatrixClientContext>;
42+
43+
constructor(props, context) {
44+
super(props, context);
45+
4146
const tombstone = this.props.room.currentState.getStateEvents("m.room.tombstone", "");
42-
this.setState({ upgraded: tombstone && tombstone.getContent().replacement_room });
47+
this.state = {
48+
upgraded: tombstone?.getContent().replacement_room,
49+
};
50+
}
4351

44-
MatrixClientPeg.get().on("RoomState.events", this.onStateEvents);
52+
public componentDidMount(): void {
53+
this.context.on("RoomState.events", this.onStateEvents);
4554
}
4655

4756
public componentWillUnmount(): void {
48-
const cli = MatrixClientPeg.get();
49-
if (cli) {
50-
cli.removeListener("RoomState.events", this.onStateEvents);
51-
}
57+
this.context.removeListener("RoomState.events", this.onStateEvents);
5258
}
5359

5460
private onStateEvents = (event: MatrixEvent, state: RoomState): void => {

0 commit comments

Comments
 (0)