From cc3f27944e496935f1e676009f91084ec4dff108 Mon Sep 17 00:00:00 2001 From: Mac Lockard Date: Wed, 20 Oct 2021 09:57:12 -0700 Subject: [PATCH] Readonly select items prop --- packages/select/src/common/itemListRenderer.ts | 4 ++-- packages/select/src/common/listItemsProps.ts | 2 +- packages/select/src/common/predicate.ts | 2 +- packages/select/src/components/query-list/queryList.tsx | 4 ++-- packages/select/src/components/select/multiSelect.tsx | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/select/src/common/itemListRenderer.ts b/packages/select/src/common/itemListRenderer.ts index a3c99ea6d3..a5b866d5e4 100644 --- a/packages/select/src/common/itemListRenderer.ts +++ b/packages/select/src/common/itemListRenderer.ts @@ -37,13 +37,13 @@ export interface IItemListRendererProps { * map each item in this array through `renderItem`, with support for * optional `noResults` and `initialContent` states. */ - filteredItems: T[]; + filteredItems: readonly T[]; /** * Array of all items in the list. * See `filteredItems` for a filtered array based on `query` and predicate props. */ - items: T[]; + items: readonly T[]; /** * The current query string. diff --git a/packages/select/src/common/listItemsProps.ts b/packages/select/src/common/listItemsProps.ts index 68caf8a12f..32bc5d327d 100644 --- a/packages/select/src/common/listItemsProps.ts +++ b/packages/select/src/common/listItemsProps.ts @@ -44,7 +44,7 @@ export interface IListItemsProps extends Props { activeItem?: T | ICreateNewItem | null; /** Array of items in the list. */ - items: T[]; + items: readonly T[]; /** * Specifies how to test if two items are equal. By default, simple strict diff --git a/packages/select/src/common/predicate.ts b/packages/select/src/common/predicate.ts index 62624a45b8..40c4148828 100644 --- a/packages/select/src/common/predicate.ts +++ b/packages/select/src/common/predicate.ts @@ -18,7 +18,7 @@ * A custom predicate for returning an entirely new `items` array based on the provided query. * See usage sites in `IListItemsProps`. */ -export type ItemListPredicate = (query: string, items: T[]) => T[]; +export type ItemListPredicate = (query: string, items: readonly T[]) => T[]; /** * A custom predicate for filtering items based on the provided query. diff --git a/packages/select/src/components/query-list/queryList.tsx b/packages/select/src/components/query-list/queryList.tsx index d813930bcf..261bdda2aa 100644 --- a/packages/select/src/components/query-list/queryList.tsx +++ b/packages/select/src/components/query-list/queryList.tsx @@ -134,7 +134,7 @@ export interface IQueryListState { createNewItem: T | undefined; /** The original `items` array filtered by `itemListPredicate` or `itemPredicate`. */ - filteredItems: T[]; + filteredItems: readonly T[]; /** The current query string. */ query: string; @@ -645,7 +645,7 @@ function isItemDisabled(item: T | null, index: number, itemDisabled?: IListIt * @param startIndex which index to begin moving from */ export function getFirstEnabledItem( - items: T[], + items: readonly T[], itemDisabled?: keyof T | ((item: T, index: number) => boolean), direction = 1, startIndex = items.length - 1, diff --git a/packages/select/src/components/select/multiSelect.tsx b/packages/select/src/components/select/multiSelect.tsx index db20c42545..8857d3977b 100644 --- a/packages/select/src/components/select/multiSelect.tsx +++ b/packages/select/src/components/select/multiSelect.tsx @@ -83,7 +83,7 @@ export interface IMultiSelectProps extends IListItemsProps { popoverProps?: Partial & object; /** Controlled selected values. */ - selectedItems?: T[]; + selectedItems?: readonly T[]; /** Props to spread to `TagInput`. Use `query` and `onQueryChange` to control the input. */ // eslint-disable-next-line @typescript-eslint/ban-types