@@ -80,6 +80,7 @@ const Select = ({
8080 position,
8181 excludeAutoPosition = defaultExclude ,
8282 ref,
83+ displayValueRenderer,
8384 ...props
8485} : Readonly < SelectProps > ) : React . ReactElement => {
8586 const selectRef = useRef < HTMLSelectElement | null > ( null ) ;
@@ -94,7 +95,7 @@ const Select = ({
9495 const valueSlotRef = useRef < HTMLDivElement > ( null ) ;
9596
9697 const computedSkin = useMemo (
97- ( ) => formFieldContext ?. skin ?? skin ?? "default" ,
98+ ( ) => formFieldContext ?. skin ?? skin ,
9899 [ formFieldContext ?. skin , skin ] ,
99100 ) ;
100101
@@ -186,26 +187,32 @@ const Select = ({
186187
187188 /** Compute value label to display */
188189
189- const displayValue = useMemo ( ( ) => {
190+ const displayValue = useMemo < React . ReactNode > ( ( ) => {
190191 if ( selectedValuesList . length === 0 ) return ;
191192
192- const displayValue = childrenData . filter (
193+ const selectedChildrenData = childrenData . filter (
193194 ( i ) => i . computedValue && selectedValuesList . includes ( i . computedValue ) ,
194195 ) ;
195196
197+ if ( displayValueRenderer ) {
198+ return displayValueRenderer ( selectedChildrenData ) ;
199+ }
200+
196201 const node = (
197202 < >
198- { displayValue . map ( ( i , k ) => (
203+ { selectedChildrenData . map ( ( i , k ) => (
199204 < span key = { i . textContent } className = { styles . display_value_item } >
200205 { i . displayValue ?? i . textContent }
201- { displayValue . length > 1 && k < displayValue . length - 1 && displayValueDivider }
206+ { selectedChildrenData . length > 1 &&
207+ k < selectedChildrenData . length - 1 &&
208+ displayValueDivider }
202209 </ span >
203210 ) ) }
204211 </ >
205212 ) ;
206213
207214 return node ;
208- } , [ childrenData , selectedValuesList , displayValueDivider ] ) ;
215+ } , [ selectedValuesList , childrenData , displayValueRenderer , displayValueDivider ] ) ;
209216
210217 /** Actions to do when dropdown closes */
211218 useEffect ( ( ) => {
0 commit comments