From 582912b3591c7a557184e717337558ca2ad1c6fe Mon Sep 17 00:00:00 2001 From: Tatiana Lopaeva Date: Mon, 12 Aug 2024 16:10:57 +0300 Subject: [PATCH] Client/Shared: Fixed option selection. --- .../src/components/AccessSelector/index.tsx | 2 +- .../access-right-select/AccessRightSelect.tsx | 18 +++++++++++------- .../AccessRightSelect.types.ts | 2 +- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/client/src/components/AccessSelector/index.tsx b/packages/client/src/components/AccessSelector/index.tsx index 2a12f0251c..0f246fa0cb 100644 --- a/packages/client/src/components/AccessSelector/index.tsx +++ b/packages/client/src/components/AccessSelector/index.tsx @@ -54,7 +54,7 @@ interface AccessSelectorProps { directionY?: string; isSelectionDisabled?: boolean; selectionErrorText: React.ReactNode; - availableAccess?: number; + availableAccess?: number[]; } const AccessSelector: React.FC = ({ diff --git a/packages/shared/components/access-right-select/AccessRightSelect.tsx b/packages/shared/components/access-right-select/AccessRightSelect.tsx index 5a95e3aa5b..258c5ed718 100644 --- a/packages/shared/components/access-right-select/AccessRightSelect.tsx +++ b/packages/shared/components/access-right-select/AccessRightSelect.tsx @@ -61,17 +61,21 @@ export const AccessRightSelectPure = ({ const onSelectCurrentItem = useCallback( (option: TOption) => { if (option) { - if (!isSelectionDisabled) setCurrentItem(option); + if (isSelectionDisabled) { + let isError = + option.access && option.access !== selectedOption.access; - const isError = availableAccess - ? availableAccess !== option.access - : option.access !== selectedOption.access; + if (availableAccess && option.access) { + isError = availableAccess.every((item) => item !== option.access); + } - if (isSelectionDisabled && isError) { - toastr.error(selectionErrorText); - return; + if (isError) { + toastr.error(selectionErrorText); + return; + } } + setCurrentItem(option); onSelect?.(option); } }, diff --git a/packages/shared/components/access-right-select/AccessRightSelect.types.ts b/packages/shared/components/access-right-select/AccessRightSelect.types.ts index 9d89be91b2..30c17f9026 100644 --- a/packages/shared/components/access-right-select/AccessRightSelect.types.ts +++ b/packages/shared/components/access-right-select/AccessRightSelect.types.ts @@ -51,5 +51,5 @@ export type AccessRightSelectProps = PropsFromCombobox & { accessOptions: ComboboxProps["options"]; isSelectionDisabled?: boolean; selectionErrorText?: React.ReactNode; - availableAccess?: number; + availableAccess?: number[]; };