@@ -22,10 +22,10 @@ import { RoomState } from 'matrix-js-sdk/src/models/room-state';
22
22
import Modal from '../../../Modal' ;
23
23
24
24
import { _t } from '../../../languageHandler' ;
25
- import { MatrixClientPeg } from "../../../MatrixClientPeg" ;
26
25
import { replaceableComponent } from "../../../utils/replaceableComponent" ;
27
26
import RoomUpgradeDialog from '../dialogs/RoomUpgradeDialog' ;
28
27
import AccessibleButton from '../elements/AccessibleButton' ;
28
+ import MatrixClientContext from "../../../contexts/MatrixClientContext" ;
29
29
30
30
interface IProps {
31
31
room : Room ;
@@ -37,18 +37,24 @@ interface IState {
37
37
38
38
@replaceableComponent ( "views.rooms.RoomUpgradeWarningBar" )
39
39
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
+
41
46
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
+ }
43
51
44
- MatrixClientPeg . get ( ) . on ( "RoomState.events" , this . onStateEvents ) ;
52
+ public componentDidMount ( ) : void {
53
+ this . context . on ( "RoomState.events" , this . onStateEvents ) ;
45
54
}
46
55
47
56
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 ) ;
52
58
}
53
59
54
60
private onStateEvents = ( event : MatrixEvent , state : RoomState ) : void => {
0 commit comments