From b2ac42b7d0abbd2641787022f46f658f12f58f62 Mon Sep 17 00:00:00 2001 From: GrigorM Date: Mon, 1 Aug 2022 18:14:28 +0200 Subject: [PATCH] optionally render all options inside listbox --- src/OptionList.tsx | 7 ++++--- src/Select.tsx | 4 ++++ src/SelectContext.ts | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/OptionList.tsx b/src/OptionList.tsx index 09e39bd65..65ad5f17b 100644 --- a/src/OptionList.tsx +++ b/src/OptionList.tsx @@ -58,6 +58,7 @@ const OptionList: React.ForwardRefRenderFunction
- {renderItem(activeIndex - 1)} - {renderItem(activeIndex)} - {renderItem(activeIndex + 1)} + {renderFullOptionList + ? [...Array(flattenOptions.length).keys()].map((index) => renderItem(index)) + : [activeIndex - 1, activeIndex, activeIndex + 1].map((index) => renderItem(index))}
> itemKey="key" diff --git a/src/Select.tsx b/src/Select.tsx index 46fbaf51e..30ccd2ceb 100644 --- a/src/Select.tsx +++ b/src/Select.tsx @@ -139,6 +139,7 @@ export interface SelectProps>> Icon menuItemSelectedIcon?: RenderNode; @@ -186,6 +187,7 @@ const Select = React.forwardRef( virtual, listHeight = 200, listItemHeight = 20, + renderFullOptionList, // Value value, @@ -580,6 +582,7 @@ const Select = React.forwardRef( listHeight, listItemHeight, childrenAsData, + renderFullOptionList, }; }, [ parsedOptions, @@ -595,6 +598,7 @@ const Select = React.forwardRef( listHeight, listItemHeight, childrenAsData, + renderFullOptionList, ]); // ========================== Warning =========================== diff --git a/src/SelectContext.ts b/src/SelectContext.ts index ed9ffea25..526309232 100644 --- a/src/SelectContext.ts +++ b/src/SelectContext.ts @@ -17,6 +17,7 @@ export interface SelectContextProps { listHeight?: number; listItemHeight?: number; childrenAsData?: boolean; + renderFullOptionList?: boolean; } const SelectContext = React.createContext(null);