@@ -22,10 +22,10 @@ import { RoomState } from 'matrix-js-sdk/src/models/room-state';
2222import Modal from '../../../Modal' ;
2323
2424import { _t } from '../../../languageHandler' ;
25- import { MatrixClientPeg } from "../../../MatrixClientPeg" ;
2625import { replaceableComponent } from "../../../utils/replaceableComponent" ;
2726import RoomUpgradeDialog from '../dialogs/RoomUpgradeDialog' ;
2827import AccessibleButton from '../elements/AccessibleButton' ;
28+ import MatrixClientContext from "../../../contexts/MatrixClientContext" ;
2929
3030interface IProps {
3131 room : Room ;
@@ -37,18 +37,24 @@ interface IState {
3737
3838@replaceableComponent ( "views.rooms.RoomUpgradeWarningBar" )
3939export 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