Add room permissions

Signed-off-by: Ajay Bura <ajbura@gmail.com>
This commit is contained in:
Ajay Bura 2022-01-10 20:34:54 +05:30
parent af61f4f1db
commit 769d24d196
5 changed files with 238 additions and 16 deletions

View file

@ -261,6 +261,7 @@ function ProfileViewer() {
function renderProfile() {
const member = room.getMember(userId) || mx.getUser(userId) || {};
const avatarMxc = member.getMxcAvatarUrl?.() || member.avatarUrl;
const powerLevel = member.powerLevel || 0;
const canChangeRole = room.currentState.maySendEvent('m.room.power_levels', mx.getUserId());
return (
@ -278,7 +279,9 @@ function ProfileViewer() {
</div>
<div className="profile-viewer__user__role">
<Text variant="b3">Role</Text>
<Button iconSrc={canChangeRole ? ChevronBottomIC : null}>{getPowerLabel(member.powerLevel) || 'Member'}</Button>
<Button iconSrc={canChangeRole ? ChevronBottomIC : null}>
{`${getPowerLabel(powerLevel) || 'Member'} - ${powerLevel}`}
</Button>
</div>
</div>
<SessionInfo userId={userId} />

View file

@ -19,12 +19,12 @@ import RoomVisibility from '../../molecules/room-visibility/RoomVisibility';
import RoomAliases from '../../molecules/room-aliases/RoomAliases';
import RoomHistoryVisibility from '../../molecules/room-history-visibility/RoomHistoryVisibility';
import RoomEncryption from '../../molecules/room-encryption/RoomEncryption';
import RoomPermissions from '../../molecules/room-permissions/RoomPermissions';
import SettingsIC from '../../../../public/res/ic/outlined/settings.svg';
import SearchIC from '../../../../public/res/ic/outlined/search.svg';
import ShieldUserIC from '../../../../public/res/ic/outlined/shield-user.svg';
import LockIC from '../../../../public/res/ic/outlined/lock.svg';
import InfoIC from '../../../../public/res/ic/outlined/info.svg';
import AddUserIC from '../../../../public/res/ic/outlined/add-user.svg';
import LeaveArrowIC from '../../../../public/res/ic/outlined/leave-arrow.svg';
@ -35,7 +35,6 @@ const tabText = {
SEARCH: 'Search',
PERMISSIONS: 'Permissions',
SECURITY: 'Security',
ADVANCED: 'Advanced',
};
const tabItems = [{
@ -54,10 +53,6 @@ const tabItems = [{
iconSrc: LockIC,
text: tabText.SECURITY,
disabled: false,
}, {
iconSrc: InfoIC,
text: tabText.ADVANCED,
disabled: false,
}];
function GeneralSettings({ roomId }) {
@ -156,6 +151,7 @@ function RoomSettings({ roomId }) {
/>
<div className="room-settings__cards-wrapper">
{selectedTab.text === tabText.GENERAL && <GeneralSettings roomId={roomId} />}
{selectedTab.text === tabText.PERMISSIONS && <RoomPermissions roomId={roomId} />}
{selectedTab.text === tabText.SECURITY && <SecuritySettings roomId={roomId} />}
</div>
</div>

View file

@ -32,16 +32,20 @@
padding: 0 var(--sp-normal);
@include dir.side(padding, var(--sp-normal), var(--sp-extra-tight));
}
}
&__card {
margin: var(--sp-normal) 0;
background-color: var(--bg-surface);
border-radius: var(--bo-radius);
box-shadow: var(--bs-surface-border);
overflow: hidden;
.room-settings__card {
margin: var(--sp-normal) 0;
background-color: var(--bg-surface);
border-radius: var(--bo-radius);
box-shadow: var(--bs-surface-border);
overflow: hidden;
& > .context-menu__header:first-child {
margin-top: 2px;
}
& > .context-menu__header:first-child {
margin-top: 2px;
}
}
.room-settings .room-permissions__card {
@extend .room-settings__card;
}