diff --git a/src/OptionList.tsx b/src/OptionList.tsx index dd4f034d..4e4f727d 100644 --- a/src/OptionList.tsx +++ b/src/OptionList.tsx @@ -160,6 +160,11 @@ const OptionList: React.ForwardRefRenderFunction = (_, r } }; + const onUpdateValue = (value: RawValueType) => { + if (value !== undefined) { + onSelect(value, { selected: !rawValues.has(value) }); + } + }; // ========================= Keyboard ========================= React.useImperativeHandle(ref, () => ({ onKeyDown: (event) => { @@ -183,11 +188,17 @@ const OptionList: React.ForwardRefRenderFunction = (_, r } } + const nextActiveIndex = getEnabledActiveIndex(activeIndex + offset, offset); if (offset !== 0) { - const nextActiveIndex = getEnabledActiveIndex(activeIndex + offset, offset); scrollIntoView(nextActiveIndex); setActive(nextActiveIndex, true); } + const item = memoFlattenOptions[nextActiveIndex]; + if (item && !item.data.disabled) { + onUpdateValue(item.value); + } else { + onUpdateValue(undefined); + } break; }