From 62fe4bfc74bcb65a3d36b92f1df2d45324c644e8 Mon Sep 17 00:00:00 2001 From: Aleksandr Lushkin Date: Thu, 4 Apr 2024 14:03:34 +0200 Subject: [PATCH] Shared: Selector: Fix types --- .../AccessRightSelect.types.ts | 4 +- .../components/selector/Selector.types.ts | 45 ++++++++++--------- .../sub-components/AccessSelector.tsx | 6 +-- .../selector/sub-components/Footer.tsx | 2 +- 4 files changed, 30 insertions(+), 27 deletions(-) diff --git a/packages/shared/components/access-right-select/AccessRightSelect.types.ts b/packages/shared/components/access-right-select/AccessRightSelect.types.ts index 3464f5679d..5bdd81b51a 100644 --- a/packages/shared/components/access-right-select/AccessRightSelect.types.ts +++ b/packages/shared/components/access-right-select/AccessRightSelect.types.ts @@ -46,7 +46,7 @@ type PropsFromCombobox = Pick< | "withBlur" >; -export interface AccessRightSelectProps extends PropsFromCombobox { +export type AccessRightSelectProps = PropsFromCombobox & { /** List of access options */ accessOptions: ComboboxProps["options"]; -} +}; diff --git a/packages/shared/components/selector/Selector.types.ts b/packages/shared/components/selector/Selector.types.ts index deb4fec3b1..5db8effde7 100644 --- a/packages/shared/components/selector/Selector.types.ts +++ b/packages/shared/components/selector/Selector.types.ts @@ -223,29 +223,32 @@ export type TAccessRight = { access: string | number; }; -export type TSelectorAccessRights = - | { - withAccessRights: true; - accessRights: TAccessRight[]; - selectedAccessRight: TAccessRight | null; - onAccessRightsChange: (access: TAccessRight) => void; - accessRightsMode?: SelectorAccessRightsMode; - } - | { - withAccessRights?: undefined; - accessRights?: undefined; - selectedAccessRight?: undefined; - onAccessRightsChange?: undefined; - accessRightsMode?: undefined; - }; - -export interface AccessSelectorProps { - onAccessRightsChange: (access: TAccessRight) => void; +type TWithAccessRightsProps = { + withAccessRights: true; accessRights: TAccessRight[]; - selectedOption: TAccessRight | null; - footerRef: React.RefObject; + selectedAccessRight: TAccessRight | null; + onAccessRightsChange: (access: TAccessRight) => void; accessRightsMode?: SelectorAccessRightsMode; -} +}; + +type TWithoutAccessRightsProps = { + withAccessRights?: undefined; + accessRights?: undefined; + selectedAccessRight?: undefined; + onAccessRightsChange?: undefined; + accessRightsMode?: undefined; +}; + +export type TSelectorAccessRights = + | TWithAccessRightsProps + | TWithoutAccessRightsProps; + +export type AccessSelectorProps = Omit< + TWithAccessRightsProps, + "withAccessRights" +> & { + footerRef: React.RefObject; +}; // footer input diff --git a/packages/shared/components/selector/sub-components/AccessSelector.tsx b/packages/shared/components/selector/sub-components/AccessSelector.tsx index d7b89d6fe7..d8f6e74e61 100644 --- a/packages/shared/components/selector/sub-components/AccessSelector.tsx +++ b/packages/shared/components/selector/sub-components/AccessSelector.tsx @@ -12,7 +12,7 @@ const AccessSelector = (props: AccessSelectorProps) => { const { onAccessRightsChange, accessRights, - selectedOption, + selectedAccessRight, footerRef, accessRightsMode = SelectorAccessRightsMode.Compact, } = props; @@ -38,7 +38,7 @@ const AccessSelector = (props: AccessSelectorProps) => { size={ComboBoxSize.content} scaled={false} manualWidth="fit-content" - selectedOption={selectedOption as TOption} + selectedOption={selectedAccessRight as TOption} showDisabledItems directionX="right" directionY="top" @@ -47,7 +47,7 @@ const AccessSelector = (props: AccessSelectorProps) => { ) : (