Support for creator/owner power level (#30525)
* Support for creator/owner power level This just shows them as 'Owner' in the list. * Add test for owner level
This commit is contained in:
@@ -31,11 +31,13 @@ export interface MemberTileViewState extends MemberTileViewModelProps {
|
||||
}
|
||||
|
||||
export enum PowerStatus {
|
||||
Creator = "creator",
|
||||
Admin = "admin",
|
||||
Moderator = "moderator",
|
||||
}
|
||||
|
||||
const PowerLabel: Record<PowerStatus, TranslationKey> = {
|
||||
[PowerStatus.Creator]: _td("power_level|creator"),
|
||||
[PowerStatus.Admin]: _td("power_level|admin"),
|
||||
[PowerStatus.Moderator]: _td("power_level|moderator"),
|
||||
};
|
||||
@@ -115,6 +117,7 @@ export function useMemberTileViewModel(props: MemberTileViewModelProps): MemberT
|
||||
const name = props.member.name;
|
||||
|
||||
const powerStatusMap = new Map([
|
||||
[Infinity, PowerStatus.Creator],
|
||||
[100, PowerStatus.Admin],
|
||||
[50, PowerStatus.Moderator],
|
||||
]);
|
||||
|
||||
@@ -348,10 +348,7 @@ export default class RolesRoomSettingsTab extends React.Component<IProps, RolesR
|
||||
powerLevelDescriptors.users_default.defaultValue,
|
||||
);
|
||||
|
||||
let currentUserLevel = userLevels[client.getUserId()!];
|
||||
if (currentUserLevel === undefined) {
|
||||
currentUserLevel = defaultUserLevel;
|
||||
}
|
||||
const currentUserLevel = room.getMember(client.getSafeUserId())?.powerLevel ?? defaultUserLevel;
|
||||
|
||||
this.populateDefaultPlEvents(
|
||||
eventsLevels,
|
||||
|
||||
@@ -1763,6 +1763,7 @@
|
||||
},
|
||||
"power_level": {
|
||||
"admin": "Admin",
|
||||
"creator": "Owner",
|
||||
"custom": "Custom (%(level)s)",
|
||||
"custom_level": "Custom level",
|
||||
"default": "Default",
|
||||
|
||||
@@ -98,11 +98,17 @@ describe("MemberTileView", () => {
|
||||
);
|
||||
expect(container2).toHaveTextContent("Admin");
|
||||
|
||||
member.isInvite = true;
|
||||
member.powerLevel = Infinity;
|
||||
const { container: container3 } = render(
|
||||
<RoomMemberTileView member={member} index={0} memberCount={1} onFocus={jest.fn()} />,
|
||||
);
|
||||
expect(container3).toHaveTextContent("Invited");
|
||||
expect(container3).toHaveTextContent("Owner");
|
||||
|
||||
member.isInvite = true;
|
||||
const { container: container4 } = render(
|
||||
<RoomMemberTileView member={member} index={0} memberCount={1} onFocus={jest.fn()} />,
|
||||
);
|
||||
expect(container4).toHaveTextContent("Invited");
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user