From a6f87e19c78bc4afbea8f0cd4f95a17fb3643062 Mon Sep 17 00:00:00 2001 From: Tatiana Lopaeva Date: Fri, 16 Aug 2024 12:43:58 +0300 Subject: [PATCH] Client: Added change of rights to free if another user has filled the quota. --- .../InvitePanel/sub-components/InviteInput.js | 38 +++++++++++++++---- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/packages/client/src/components/panels/InvitePanel/sub-components/InviteInput.js b/packages/client/src/components/panels/InvitePanel/sub-components/InviteInput.js index 3e1277a793..6b1245a8b0 100644 --- a/packages/client/src/components/panels/InvitePanel/sub-components/InviteInput.js +++ b/packages/client/src/components/panels/InvitePanel/sub-components/InviteInput.js @@ -42,6 +42,7 @@ import BetaBadge from "../../../BetaBadgeWrapper"; import { getMembersList } from "@docspace/shared/api/people"; import { AccountsSearchArea, + EmployeeType, RoomsType, ShareAccessRights, } from "@docspace/shared/enums"; @@ -135,27 +136,50 @@ const InviteInput = ({ const toUserItems = (query) => { const addresses = parseAddresses(query); const uid = () => Math.random().toString(36).slice(-6); + let userAccess = selectedAccess; if (addresses.length > 1) { - return addresses.map((address) => { - isPaidUserAccess(selectedAccess) && setInvitePaidUsersCount(); + let isShowErrorToast = false; + + const itemsArray = addresses.map((address) => { + + if (roomId === -1 && isPaidUserAccess(userAccess)) { + if (isPaidUserLimit) { + const freeType = EmployeeType.Guest; + + userAccess = freeType; + isShowErrorToast = true; + } else { + setInvitePaidUsersCount(); + } + } return { email: address.email, id: uid(), - access: selectedAccess, + access: userAccess, displayName: address.email, errors: address.parseErrors, isEmailInvite: true, }; }); + + if (isShowErrorToast) toastr.error(); + + return itemsArray; } - roomId === -1 && - isPaidUserAccess(selectedAccess) && - setInvitePaidUsersCount(); - let userAccess = selectedAccess; + if (roomId === -1 && isPaidUserAccess(userAccess)) { + if (isPaidUserLimit) { + const freeType = EmployeeType.Guest; + + userAccess = freeType; + toastr.error(); + } else { + setInvitePaidUsersCount(); + } + } if (isPaidUserLimit && roomId !== -1 && isPaidUserRole(userAccess)) { const freeRole = getTopFreeRole(t, roomType)?.access;