implemented new api call in members view

This commit is contained in:
mushka 2022-10-31 18:28:38 +03:00
parent c7603626f5
commit 6ed72264ef
3 changed files with 31 additions and 27 deletions

View File

@ -13,52 +13,39 @@ class MembersHelper {
return {
docSpaceAdmin: {
key: "docSpaceAdmin",
title: this.t("Common:DocSpaceAdmin"),
label: this.t("Common:DocSpaceAdmin"),
access: ShareAccessRights.FullAccess,
},
roomAdmin: {
key: "roomAdmin",
title: this.t("Common:RoomAdmin"),
label: this.t("Common:RoomAdmin"),
access: ShareAccessRights.RoomManager,
},
user: {
key: "user",
title: this.t("Common:User"),
label: this.t("Common:User"),
access: EmployeeType.Guest,
viewer: {
key: "viewer",
label: this.t("Translations:RoleViewer"),
access: ShareAccessRights.ReadOnly,
},
editor: {
key: "editor",
title: this.t("Translations:RoleEditor"),
label: this.t("Translations:RoleEditor"),
access: ShareAccessRights.Editing,
},
formFiller: {
key: "formFiller",
title: this.t("Translations:RoleFormFiller"),
label: this.t("Translations:RoleFormFiller"),
access: ShareAccessRights.FormFilling,
},
reviewer: {
key: "reviewer",
title: this.t("Translations:RoleReviewer"),
label: this.t("Translations:RoleReviewer"),
access: ShareAccessRights.Review,
},
commentator: {
key: "commentator",
title: this.t("Translations:RoleCommentator"),
label: this.t("Translations:RoleCommentator"),
access: ShareAccessRights.Comment,
},
viewer: {
key: "viewer",
title: this.t("Translations:RoleViewer"),
label: this.t("Translations:RoleViewer"),
access: ShareAccessRights.ReadOnly,
},
};
};

View File

@ -11,8 +11,10 @@ const User = ({
user,
isExpect,
membersHelper,
roomId,
roomType,
currentMember,
updateRoomMemberRole,
}) => {
if (!user.displayName && !user.email) return null;
@ -30,6 +32,17 @@ const User = ({
setUserRoleOptions(
fullRoomRoleOptions.filter((role) => role.key !== option.key)
);
updateRoomMemberRole(roomId, {
invitations: [
{
id: user.id,
access: option.access,
},
],
notify: false,
sharingMessage: "",
});
};
return (

View File

@ -27,13 +27,14 @@ const Members = ({
setSelectionParentRoom,
getRoomMembers,
updateRoomMemberRole,
setInvitePanelOptions,
changeUserType,
}) => {
const membersHelper = new MembersHelper({ t });
const [members, setMembers] = useState(null);
const [roomType, setRoomType] = useState(null);
const [showLoader, setShowLoader] = useState(false);
const fetchMembers = async (roomId) => {
@ -64,8 +65,6 @@ const Members = ({
useEffect(async () => {
if (!selectionParentRoom) return;
setRoomType(selectionParentRoom.roomType);
if (selectionParentRoom.members) {
setMembers(selectionParentRoom.members);
return;
@ -80,7 +79,6 @@ const Members = ({
useEffect(async () => {
if (!selection.isRoom) return;
setRoomType(selection.roomType);
if (selectionParentRoom && selectionParentRoom.id === selection.id) return;
const fetchedMembers = await fetchMembers(selection.id);
@ -106,7 +104,7 @@ const Members = ({
};
if (showLoader) return <Loaders.InfoPanelViewLoader view="members" />;
if (!members) return null;
if (!selectionParentRoom || !members) return null;
console.log(members);
const [currentMember] = members.inRoom.filter(
@ -136,8 +134,10 @@ const Members = ({
t={t}
user={user}
membersHelper={membersHelper}
roomType={roomType}
currentMember={currentMember}
updateRoomMemberRole={updateRoomMemberRole}
roomId={selectionParentRoom.id}
roomType={selectionParentRoom.roomType}
/>
))}
</StyledUserList>
@ -145,14 +145,14 @@ const Members = ({
{!!members.expected.length && (
<StyledUserTypeHeader isExpect>
<Text className="title">{t("ExpectPeople")}</Text>
<IconButton
{/* <IconButton
className={"icon"}
title={t("Repeat invitation")}
iconName="/static/images/e-mail+.react.svg"
isFill={true}
onClick={onRepeatInvitation}
size={16}
/>
/> */}
</StyledUserTypeHeader>
)}
@ -164,8 +164,10 @@ const Members = ({
t={t}
user={user}
membersHelper={membersHelper}
roomType={roomType}
currentMember={currentMember}
updateRoomMemberRole={updateRoomMemberRole}
roomId={selectionParentRoom.id}
roomType={selectionParentRoom.roomType}
/>
))}
</StyledUserList>
@ -175,7 +177,7 @@ const Members = ({
export default inject(({ auth, filesStore, peopleStore, dialogsStore }) => {
const { selectionParentRoom, setSelectionParentRoom } = auth.infoPanelStore;
const { getRoomMembers } = filesStore;
const { getRoomMembers, updateRoomMemberRole } = filesStore;
const { isOwner, isAdmin, id: selfId } = auth.userStore.user;
const { setInvitePanelOptions } = dialogsStore;
const { changeType: changeUserType } = peopleStore;
@ -183,7 +185,9 @@ export default inject(({ auth, filesStore, peopleStore, dialogsStore }) => {
return {
selectionParentRoom,
setSelectionParentRoom,
getRoomMembers,
updateRoomMemberRole,
isOwner,
isAdmin,