Skip to content

Commit adfa43d

Browse files
RiotRobotdbkr
andauthored
Support for creator/owner power level (#30525) (#30526)
* Support for creator/owner power level This just shows them as 'Owner' in the list. * Add test for owner level (cherry picked from commit 96dbddc) Co-authored-by: David Baker <[email protected]>
1 parent 9590e59 commit adfa43d

File tree

4 files changed

+13
-6
lines changed

4 files changed

+13
-6
lines changed

src/components/viewmodels/memberlist/tiles/MemberTileViewModel.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,13 @@ export interface MemberTileViewState extends MemberTileViewModelProps {
3131
}
3232

3333
export enum PowerStatus {
34+
Creator = "creator",
3435
Admin = "admin",
3536
Moderator = "moderator",
3637
}
3738

3839
const PowerLabel: Record<PowerStatus, TranslationKey> = {
40+
[PowerStatus.Creator]: _td("power_level|creator"),
3941
[PowerStatus.Admin]: _td("power_level|admin"),
4042
[PowerStatus.Moderator]: _td("power_level|moderator"),
4143
};
@@ -115,6 +117,7 @@ export function useMemberTileViewModel(props: MemberTileViewModelProps): MemberT
115117
const name = props.member.name;
116118

117119
const powerStatusMap = new Map([
120+
[Infinity, PowerStatus.Creator],
118121
[100, PowerStatus.Admin],
119122
[50, PowerStatus.Moderator],
120123
]);

src/components/views/settings/tabs/room/RolesRoomSettingsTab.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -348,10 +348,7 @@ export default class RolesRoomSettingsTab extends React.Component<IProps, RolesR
348348
powerLevelDescriptors.users_default.defaultValue,
349349
);
350350

351-
let currentUserLevel = userLevels[client.getUserId()!];
352-
if (currentUserLevel === undefined) {
353-
currentUserLevel = defaultUserLevel;
354-
}
351+
const currentUserLevel = room.getMember(client.getSafeUserId())?.powerLevel ?? defaultUserLevel;
355352

356353
this.populateDefaultPlEvents(
357354
eventsLevels,

src/i18n/strings/en_EN.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1762,6 +1762,7 @@
17621762
},
17631763
"power_level": {
17641764
"admin": "Admin",
1765+
"creator": "Owner",
17651766
"custom": "Custom (%(level)s)",
17661767
"custom_level": "Custom level",
17671768
"default": "Default",

test/unit-tests/components/views/rooms/memberlist/MemberTileView-test.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,17 @@ describe("MemberTileView", () => {
9898
);
9999
expect(container2).toHaveTextContent("Admin");
100100

101-
member.isInvite = true;
101+
member.powerLevel = Infinity;
102102
const { container: container3 } = render(
103103
<RoomMemberTileView member={member} index={0} memberCount={1} onFocus={jest.fn()} />,
104104
);
105-
expect(container3).toHaveTextContent("Invited");
105+
expect(container3).toHaveTextContent("Owner");
106+
107+
member.isInvite = true;
108+
const { container: container4 } = render(
109+
<RoomMemberTileView member={member} index={0} memberCount={1} onFocus={jest.fn()} />,
110+
);
111+
expect(container4).toHaveTextContent("Invited");
106112
});
107113
});
108114

0 commit comments

Comments
 (0)