@@ -24,6 +24,7 @@ import {RoomMember} from 'matrix-js-sdk/src/models/room-member';
24
24
import { User } from 'matrix-js-sdk/src/models/user' ;
25
25
import { Room } from 'matrix-js-sdk/src/models/room' ;
26
26
import { EventTimeline } from 'matrix-js-sdk/src/models/event-timeline' ;
27
+ import { MatrixEvent } from 'matrix-js-sdk/src/models/event' ;
27
28
28
29
import dis from '../../../dispatcher/dispatcher' ;
29
30
import Modal from '../../../Modal' ;
@@ -496,11 +497,11 @@ const isMuted = (member: RoomMember, powerLevelContent: IPowerLevelsContent) =>
496
497
export const useRoomPowerLevels = ( cli : MatrixClient , room : Room ) => {
497
498
const [ powerLevels , setPowerLevels ] = useState < IPowerLevelsContent > ( { } ) ;
498
499
499
- const update = useCallback ( ( ) => {
500
- if ( ! room ) {
501
- return ;
502
- }
503
- const event = room . currentState . getStateEvents ( "m.room.power_levels" , "" ) ;
500
+ const update = useCallback ( ( ev ?: MatrixEvent ) => {
501
+ if ( ! room ) return ;
502
+ if ( ev && ev . getType ( ) !== EventType . RoomPowerLevels ) return ;
503
+
504
+ const event = room . currentState . getStateEvents ( EventType . RoomPowerLevels , "" ) ;
504
505
if ( event ) {
505
506
setPowerLevels ( event . getContent ( ) ) ;
506
507
} else {
@@ -511,7 +512,7 @@ export const useRoomPowerLevels = (cli: MatrixClient, room: Room) => {
511
512
} ;
512
513
} , [ room ] ) ;
513
514
514
- useEventEmitter ( cli , "RoomState.members " , update ) ;
515
+ useEventEmitter ( cli , "RoomState.events " , update ) ;
515
516
useEffect ( ( ) => {
516
517
update ( ) ;
517
518
return ( ) => {
0 commit comments