@@ -52,6 +52,7 @@ const OptionList: React.ForwardRefRenderFunction<RefOptionListProps, {}> = (_, r
5252 onActiveValue,
5353 defaultActiveFirstOption,
5454 onSelect,
55+ tabSelectsValue,
5556 menuItemSelectedIcon,
5657 rawValues,
5758 fieldNames,
@@ -185,6 +186,20 @@ const OptionList: React.ForwardRefRenderFunction<RefOptionListProps, {}> = (_, r
185186 } ;
186187
187188 // ========================= Keyboard =========================
189+ const selectOptionHotKeyLogic = ( event ) => {
190+ // value
191+ const item = memoFlattenOptions [ activeIndex ] ;
192+ if ( item && ! item ?. data ?. disabled && ! overMaxCount ) {
193+ onSelectValue ( item . value ) ;
194+ } else {
195+ onSelectValue ( undefined ) ;
196+ }
197+
198+ if ( open ) {
199+ event . preventDefault ( ) ;
200+ }
201+ } ;
202+
188203 React . useImperativeHandle ( ref , ( ) => ( {
189204 onKeyDown : ( event ) => {
190205 const { which, ctrlKey } = event ;
@@ -217,20 +232,12 @@ const OptionList: React.ForwardRefRenderFunction<RefOptionListProps, {}> = (_, r
217232 }
218233
219234 // >>> Select (Tab / Enter)
220- case KeyCode . TAB :
235+ case KeyCode . TAB : {
236+ tabSelectsValue && selectOptionHotKeyLogic ( event ) ;
237+ break ;
238+ }
221239 case KeyCode . ENTER : {
222- // value
223- const item = memoFlattenOptions [ activeIndex ] ;
224- if ( item && ! item ?. data ?. disabled && ! overMaxCount ) {
225- onSelectValue ( item . value ) ;
226- } else {
227- onSelectValue ( undefined ) ;
228- }
229-
230- if ( open ) {
231- event . preventDefault ( ) ;
232- }
233-
240+ selectOptionHotKeyLogic ( event ) ;
234241 break ;
235242 }
236243
0 commit comments