Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Commit

Permalink
Fix power selector not showing up in user info when some power levels…
Browse files Browse the repository at this point in the history
… fields are missing (#8297)
  • Loading branch information
t3chguy authored Apr 15, 2022
1 parent d5887bf commit 77b0add
Showing 1 changed file with 5 additions and 13 deletions.
18 changes: 5 additions & 13 deletions src/components/views/right_panel/UserInfo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -921,14 +921,9 @@ function useRoomPermissions(cli: MatrixClient, room: Room, user: RoomMember): IR
canEdit: false,
canInvite: false,
});
const updateRoomPermissions = useCallback(() => {
if (!room) {
return;
}

const powerLevelEvent = room.currentState.getStateEvents("m.room.power_levels", "");
if (!powerLevelEvent) return;
const powerLevels = powerLevelEvent.getContent();
const updateRoomPermissions = useCallback(() => {
const powerLevels = room?.currentState.getStateEvents(EventType.RoomPowerLevels, "")?.getContent();
if (!powerLevels) return;

const me = room.getMember(cli.getUserId());
Expand All @@ -940,17 +935,14 @@ function useRoomPermissions(cli: MatrixClient, room: Room, user: RoomMember): IR

let modifyLevelMax = -1;
if (canAffectUser) {
const editPowerLevel = (
(powerLevels.events ? powerLevels.events["m.room.power_levels"] : null) ||
powerLevels.state_default
);
if (me.powerLevel >= editPowerLevel && (isMe || me.powerLevel > them.powerLevel)) {
const editPowerLevel = powerLevels.events?.[EventType.RoomPowerLevels] ?? powerLevels.state_default ?? 50;
if (me.powerLevel >= editPowerLevel) {
modifyLevelMax = me.powerLevel;
}
}

setRoomPermissions({
canInvite: me.powerLevel >= powerLevels.invite,
canInvite: me.powerLevel >= (powerLevels.invite ?? 50),
canEdit: modifyLevelMax >= 0,
modifyLevelMax,
});
Expand Down

0 comments on commit 77b0add

Please sign in to comment.