Optima Dropdowns: controllable

This commit is contained in:
Enrico Ros
2024-09-22 00:11:17 -07:00
parent a19804d450
commit 378948e522
@@ -99,6 +99,11 @@ function OptimaBarDropdown<TValue extends string>(props: {
showSymbols?: boolean,
}) {
// state
const [listboxOpen, setListboxOpen] = React.useState(false);
// derived state
const { onChange } = props;
const handleOnChange = React.useCallback((_event: any, value: TValue | null) => {
@@ -113,6 +118,11 @@ function OptimaBarDropdown<TValue extends string>(props: {
value={props.value}
onChange={handleOnChange}
placeholder={props.placeholder}
listboxOpen={listboxOpen}
onListboxOpenChange={(isOpen) => {
if (isOpen !== listboxOpen)
setListboxOpen(isOpen)
}}
indicator={<KeyboardArrowDownIcon />}
slotProps={selectSlotProps}
>