@@ -921,14 +921,9 @@ function useRoomPermissions(cli: MatrixClient, room: Room, user: RoomMember): IR
921921 canEdit : false ,
922922 canInvite : false ,
923923 } ) ;
924- const updateRoomPermissions = useCallback ( ( ) => {
925- if ( ! room ) {
926- return ;
927- }
928924
929- const powerLevelEvent = room . currentState . getStateEvents ( "m.room.power_levels" , "" ) ;
930- if ( ! powerLevelEvent ) return ;
931- const powerLevels = powerLevelEvent . getContent ( ) ;
925+ const updateRoomPermissions = useCallback ( ( ) => {
926+ const powerLevels = room ?. currentState . getStateEvents ( EventType . RoomPowerLevels , "" ) ?. getContent ( ) ;
932927 if ( ! powerLevels ) return ;
933928
934929 const me = room . getMember ( cli . getUserId ( ) ) ;
@@ -940,17 +935,14 @@ function useRoomPermissions(cli: MatrixClient, room: Room, user: RoomMember): IR
940935
941936 let modifyLevelMax = - 1 ;
942937 if ( canAffectUser ) {
943- const editPowerLevel = (
944- ( powerLevels . events ? powerLevels . events [ "m.room.power_levels" ] : null ) ||
945- powerLevels . state_default
946- ) ;
947- if ( me . powerLevel >= editPowerLevel && ( isMe || me . powerLevel > them . powerLevel ) ) {
938+ const editPowerLevel = powerLevels . events ?. [ EventType . RoomPowerLevels ] ?? powerLevels . state_default ?? 50 ;
939+ if ( me . powerLevel >= editPowerLevel ) {
948940 modifyLevelMax = me . powerLevel ;
949941 }
950942 }
951943
952944 setRoomPermissions ( {
953- canInvite : me . powerLevel >= powerLevels . invite ,
945+ canInvite : me . powerLevel >= ( powerLevels . invite ?? 50 ) ,
954946 canEdit : modifyLevelMax >= 0 ,
955947 modifyLevelMax,
956948 } ) ;
0 commit comments