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