Client: Added the ability to transfer available rights.

This commit is contained in:
Tatiana Lopaeva 2024-08-12 15:24:23 +03:00
parent 250f7f4c23
commit 14ae9e1a48
4 changed files with 13 additions and 1 deletions

View File

@ -54,6 +54,7 @@ interface AccessSelectorProps {
directionY?: string;
isSelectionDisabled?: boolean;
selectionErrorText: React.ReactNode;
availableAccess?: number;
}
const AccessSelector: React.FC<AccessSelectorProps> = ({
@ -76,6 +77,7 @@ const AccessSelector: React.FC<AccessSelectorProps> = ({
directionY = "bottom",
isSelectionDisabled,
selectionErrorText,
availableAccess,
}) => {
const [horizontalOrientation, setHorizontalOrientation] = useState(false);
const [width, setWidth] = useState(manualWidth || 0);
@ -139,6 +141,7 @@ const AccessSelector: React.FC<AccessSelectorProps> = ({
isDisabled={isDisabled}
isSelectionDisabled={isSelectionDisabled}
selectionErrorText={selectionErrorText}
availableAccess={availableAccess}
/>
)}
@ -163,6 +166,7 @@ const AccessSelector: React.FC<AccessSelectorProps> = ({
isDisabled={isDisabled}
isSelectionDisabled={isSelectionDisabled}
selectionErrorText={selectionErrorText}
availableAccess={availableAccess}
/>
)}
</StyledAccessSelector>

View File

@ -50,6 +50,7 @@ import { filterGroupRoleOptions, filterUserRoleOptions } from "SRC_DIR/helpers";
import AccessSelector from "../../../AccessSelector";
import PaidQuotaLimitError from "SRC_DIR/components/PaidQuotaLimitError";
import { EmployeeType } from "@docspace/shared/enums";
const Item = ({
t,
@ -261,6 +262,7 @@ const Item = ({
noBorder
isSelectionDisabled={isPaidUserLimit}
selectionErrorText={<PaidQuotaLimitError />}
availableAccess={EmployeeType.Guest}
/>
</>
)}

View File

@ -49,6 +49,7 @@ export const AccessRightSelectPure = ({
className,
isSelectionDisabled,
selectionErrorText,
availableAccess,
...props
}: AccessRightSelectProps) => {
const [currentItem, setCurrentItem] = useState(selectedOption);
@ -62,7 +63,11 @@ export const AccessRightSelectPure = ({
if (option) {
if (!isSelectionDisabled) setCurrentItem(option);
if (isSelectionDisabled && option.access !== selectedOption.access) {
const isError = availableAccess
? availableAccess !== option.access
: option.access !== selectedOption.access;
if (isSelectionDisabled && isError) {
toastr.error(selectionErrorText);
return;
}

View File

@ -51,4 +51,5 @@ export type AccessRightSelectProps = PropsFromCombobox & {
accessOptions: ComboboxProps["options"];
isSelectionDisabled?: boolean;
selectionErrorText?: React.ReactNode;
availableAccess?: number;
};