diff --git a/packages/react-drylus/src/forms/Select.tsx b/packages/react-drylus/src/forms/Select.tsx index af88d997f..b4f627b38 100644 --- a/packages/react-drylus/src/forms/Select.tsx +++ b/packages/react-drylus/src/forms/Select.tsx @@ -93,6 +93,13 @@ const styles = { color: ${sv.colorSecondary}; } `, + customValue: css` + position: absolute; + top: 50%; + left: ${sv.marginExtraSmall}; + transform: translateY(-50%); + z-index: 999; + `, }; export interface SelectOption extends Option { @@ -133,6 +140,9 @@ export interface SelectProps { /** If true, a spinner is shown in the right corner, like with error and valid */ loading?: boolean; + /** Used to render custom content within the select e.g. a Tag */ + renderLabel?: (v: SelectOption['label']) => T; + /** Used for style overrides */ style?: Style; @@ -155,6 +165,7 @@ export const Select = ({ responsive, ...rest }: SelectProps) = valid, loading, style, + renderLabel, ...props } = useResponsiveProps>(rest, responsive); @@ -200,17 +211,19 @@ export const Select = ({ responsive, ...rest }: SelectProps) = ); } })} + {value != null && renderLabel != null ? ( +
+ {renderLabel(options.find((o) => o.value === value)?.label ?? '')} +
+ ) : null}