Client: InvitePanel: Rewrite access model for accounts invitation

This commit is contained in:
Ilya Oleshko 2024-07-30 14:02:26 +03:00
parent dbfff640e9
commit 724fc44e98

View File

@ -34,7 +34,7 @@ import React, {
import { observer, inject } from "mobx-react";
import { withTranslation } from "react-i18next";
import { DeviceType } from "@docspace/shared/enums";
import { DeviceType, EmployeeType } from "@docspace/shared/enums";
import { LOADER_TIMEOUT } from "@docspace/shared/constants";
import { Backdrop } from "@docspace/shared/components/backdrop";
@ -72,11 +72,6 @@ const InvitePanel = ({
visible,
setRoomSecurity,
getRoomSecurityInfo,
getPortalInviteLinks,
userLink,
guestLink,
adminLink,
collaboratorLink,
defaultAccess,
inviteUsers,
setInfoPanelIsMobileHidden,
@ -88,8 +83,6 @@ const InvitePanel = ({
currentDeviceType,
}) => {
const [invitePanelIsLoding, setInvitePanelIsLoading] = useState(
() =>
((!userLink || !guestLink || !collaboratorLink) && !adminLink) ||
roomId !== -1,
);
const [selectedRoom, setSelectedRoom] = useState(null);
@ -117,6 +110,33 @@ const InvitePanel = ({
setExternalLinksVisible(visible);
};
const accessModel = [
{
id: "user",
title: "User",
shareLink: "",
access: EmployeeType.User,
},
{
id: "guest",
title: "Guest",
shareLink: "",
access: EmployeeType.Guest,
},
{
id: "admin",
title: "Admin",
shareLink: "",
access: EmployeeType.Admin,
},
{
id: "collaborator",
title: "Collaborator",
shareLink: "",
access: EmployeeType.Collaborator,
},
];
const selectRoom = () => {
const room = folders.find((folder) => folder.id === roomId);
@ -167,40 +187,7 @@ const InvitePanel = ({
useEffect(() => {
if (roomId === -1) {
if ((!userLink || !guestLink || !collaboratorLink) && !adminLink) {
setInvitePanelIsLoading(true);
getPortalInviteLinks().finally(() => {
disableInvitePanelLoader();
});
}
setShareLinks([
{
id: "user",
title: "User",
shareLink: userLink,
access: 1,
},
{
id: "guest",
title: "Guest",
shareLink: guestLink,
access: 2,
},
{
id: "admin",
title: "Admin",
shareLink: adminLink,
access: 3,
},
{
id: "collaborator",
title: "Collaborator",
shareLink: collaboratorLink,
access: 4,
},
]);
setShareLinks(accessModel);
return;
}
@ -208,7 +195,7 @@ const InvitePanel = ({
Promise.all([selectRoom(), getInfo()]).finally(() => {
disableInvitePanelLoader(false);
});
}, [roomId, userLink, guestLink, adminLink, collaboratorLink]);
}, [roomId]);
useEffect(() => {
const hasErrors = inviteItems.some((item) => !!item.errors?.length);
@ -487,14 +474,6 @@ export default inject(
isRoomMembersPanelOpen,
} = infoPanelStore;
const {
getPortalInviteLinks,
userLink,
guestLink,
adminLink,
collaboratorLink,
} = peopleStore.inviteLinksStore;
const {
inviteItems,
invitePanelOptions,
@ -520,11 +499,6 @@ export default inject(
visible: invitePanelOptions.visible,
defaultAccess: invitePanelOptions.defaultAccess,
getFolderInfo,
getPortalInviteLinks,
userLink,
guestLink,
adminLink,
collaboratorLink,
inviteUsers,
setInfoPanelIsMobileHidden,
updateInfoPanelMembers,