mirror of https://github.com/vector-im/riot-web
Hide Invite to this room CTA if no permission
parent
603a1c8ffb
commit
9f9699bf75
|
@ -60,8 +60,9 @@ const NewRoomIntro = () => {
|
||||||
{ caption && <p>{ caption }</p> }
|
{ caption && <p>{ caption }</p> }
|
||||||
</React.Fragment>;
|
</React.Fragment>;
|
||||||
} else {
|
} else {
|
||||||
|
const inRoom = room && room.getMyMembership() === "join";
|
||||||
const topic = room.currentState.getStateEvents(EventType.RoomTopic, "")?.getContent()?.topic;
|
const topic = room.currentState.getStateEvents(EventType.RoomTopic, "")?.getContent()?.topic;
|
||||||
const canAddTopic = room.currentState.maySendStateEvent(EventType.RoomTopic, cli.getUserId());
|
const canAddTopic = inRoom && room.currentState.maySendStateEvent(EventType.RoomTopic, cli.getUserId());
|
||||||
|
|
||||||
const onTopicClick = () => {
|
const onTopicClick = () => {
|
||||||
dis.dispatch({
|
dis.dispatch({
|
||||||
|
@ -99,10 +100,26 @@ const NewRoomIntro = () => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let canInvite = inRoom;
|
||||||
|
const powerLevels = room.currentState.getStateEvents(EventType.RoomPowerLevels, "")?.getContent();
|
||||||
|
const me = room.getMember(cli.getUserId());
|
||||||
|
if (powerLevels && me && powerLevels.invite > me.powerLevel) {
|
||||||
|
canInvite = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
let buttons;
|
||||||
|
if (canInvite) {
|
||||||
const onInviteClick = () => {
|
const onInviteClick = () => {
|
||||||
dis.dispatch({ action: "view_invite", roomId });
|
dis.dispatch({ action: "view_invite", roomId });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
buttons = <div className="mx_NewRoomIntro_buttons">
|
||||||
|
<AccessibleButton className="mx_NewRoomIntro_inviteButton" kind="primary" onClick={onInviteClick}>
|
||||||
|
{_t("Invite to this room")}
|
||||||
|
</AccessibleButton>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
const avatarUrl = room.currentState.getStateEvents(EventType.RoomAvatar, "")?.getContent()?.url;
|
const avatarUrl = room.currentState.getStateEvents(EventType.RoomAvatar, "")?.getContent()?.url;
|
||||||
body = <React.Fragment>
|
body = <React.Fragment>
|
||||||
<MiniAvatarUploader
|
<MiniAvatarUploader
|
||||||
|
@ -119,11 +136,7 @@ const NewRoomIntro = () => {
|
||||||
roomName: () => <b>{ room.name }</b>,
|
roomName: () => <b>{ room.name }</b>,
|
||||||
})}</p>
|
})}</p>
|
||||||
<p>{topicText}</p>
|
<p>{topicText}</p>
|
||||||
<div className="mx_NewRoomIntro_buttons">
|
{ buttons }
|
||||||
<AccessibleButton className="mx_NewRoomIntro_inviteButton" kind="primary" onClick={onInviteClick}>
|
|
||||||
{_t("Invite to this room")}
|
|
||||||
</AccessibleButton>
|
|
||||||
</div>
|
|
||||||
</React.Fragment>;
|
</React.Fragment>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue