Skip to content

Commit f2378fb

Browse files
committed
Allow customising selector selection
1 parent 3a50ea1 commit f2378fb

1 file changed

Lines changed: 13 additions & 4 deletions

File tree

packages/lib/src/toolbar/controls/Selector/Selector.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,24 @@ import styles from './Selector.module.css';
1515

1616
interface Props<T> {
1717
label?: string;
18-
value: T;
18+
options: Record<string, T[]> | T[];
1919
disabled?: boolean;
20+
value: T;
2021
onChange: (value: T) => void;
21-
options: Record<string, T[]> | T[];
2222
renderOption: (option: T) => ReactNode;
23+
renderSelection?: (option: T) => ReactNode;
2324
}
2425

2526
function Selector<T extends string>(props: Props<T>) {
26-
const { label, value, disabled, onChange, options, renderOption } = props;
27+
const {
28+
label,
29+
options,
30+
disabled,
31+
value,
32+
onChange,
33+
renderOption,
34+
renderSelection = renderOption,
35+
} = props;
2736

2837
const { context, refs, floatingStyles } = useFloatingMenu();
2938
const { open: isOpen, floatingId, onOpenChange: toggle } = context;
@@ -80,7 +89,7 @@ function Selector<T extends string>(props: Props<T>) {
8089
{...getReferenceProps()}
8190
>
8291
<span id={currentOptionId} className={toolbarStyles.btnLike}>
83-
{renderOption(value)}
92+
{renderSelection(value)}
8493
<MdArrowDropDown className={toolbarStyles.arrowIcon} />
8594
</span>
8695
</button>

0 commit comments

Comments
 (0)