diff --git a/src/components/views/rooms/RoomUpgradeWarningBar.tsx b/src/components/views/rooms/RoomUpgradeWarningBar.tsx index eb334ab825c..b9fdc1111c5 100644 --- a/src/components/views/rooms/RoomUpgradeWarningBar.tsx +++ b/src/components/views/rooms/RoomUpgradeWarningBar.tsx @@ -22,10 +22,10 @@ import { RoomState } from 'matrix-js-sdk/src/models/room-state'; import Modal from '../../../Modal'; import { _t } from '../../../languageHandler'; -import { MatrixClientPeg } from "../../../MatrixClientPeg"; import { replaceableComponent } from "../../../utils/replaceableComponent"; import RoomUpgradeDialog from '../dialogs/RoomUpgradeDialog'; import AccessibleButton from '../elements/AccessibleButton'; +import MatrixClientContext from "../../../contexts/MatrixClientContext"; interface IProps { room: Room; @@ -37,18 +37,24 @@ interface IState { @replaceableComponent("views.rooms.RoomUpgradeWarningBar") export default class RoomUpgradeWarningBar extends React.PureComponent { - public componentDidMount(): void { + static contextType = MatrixClientContext; + public context!: React.ContextType; + + constructor(props, context) { + super(props, context); + const tombstone = this.props.room.currentState.getStateEvents("m.room.tombstone", ""); - this.setState({ upgraded: tombstone && tombstone.getContent().replacement_room }); + this.state = { + upgraded: tombstone?.getContent().replacement_room, + }; + } - MatrixClientPeg.get().on("RoomState.events", this.onStateEvents); + public componentDidMount(): void { + this.context.on("RoomState.events", this.onStateEvents); } public componentWillUnmount(): void { - const cli = MatrixClientPeg.get(); - if (cli) { - cli.removeListener("RoomState.events", this.onStateEvents); - } + this.context.removeListener("RoomState.events", this.onStateEvents); } private onStateEvents = (event: MatrixEvent, state: RoomState): void => {