@@ -519,65 +519,65 @@ const BaseSelect = React.forwardRef<BaseSelectRef, BaseSelectProps>((props, ref)
519519 const keyLockRef = React . useRef ( false ) ;
520520
521521 // KeyDown
522- // const onInternalKeyDown: React.KeyboardEventHandler<HTMLDivElement> = (event, ...rest ) => {
523- // const clearLock = getClearLock();
524- // const { key } = event;
522+ const onInternalKeyDown : React . KeyboardEventHandler < HTMLDivElement > = ( event ) => {
523+ // const clearLock = getClearLock();
524+ const { key } = event ;
525525
526- // const isEnterKey = key === 'Enter';
526+ const isEnterKey = key === 'Enter' ;
527527
528- // if (isEnterKey) {
529- // // Do not submit form when type in the input
530- // if (mode !== 'combobox') {
531- // event.preventDefault();
532- // }
528+ if ( isEnterKey ) {
529+ // Do not submit form when type in the input
530+ if ( mode !== 'combobox' ) {
531+ event . preventDefault ( ) ;
532+ }
533533
534- // // We only manage open state here, close logic should handle by list component
535- // if (!mergedOpen) {
536- // onToggleOpen (true);
537- // }
538- // }
534+ // We only manage open state here, close logic should handle by list component
535+ if ( ! mergedOpen ) {
536+ triggerOpen ( true ) ;
537+ }
538+ }
539539
540- // setClearLock(!!mergedSearchValue);
541-
542- // // Remove value by `backspace`
543- // if (
544- // key === 'Backspace' &&
545- // !clearLock &&
546- // multiple &&
547- // !mergedSearchValue &&
548- // displayValues.length
549- // ) {
550- // const cloneDisplayValues = [...displayValues];
551- // let removedDisplayValue = null;
552-
553- // for (let i = cloneDisplayValues.length - 1; i >= 0; i -= 1) {
554- // const current = cloneDisplayValues[i];
555-
556- // if (!current.disabled) {
557- // cloneDisplayValues.splice(i, 1);
558- // removedDisplayValue = current;
559- // break;
560- // }
561- // }
540+ // setClearLock(!!mergedSearchValue);
541+
542+ // // Remove value by `backspace`
543+ // if (
544+ // key === 'Backspace' &&
545+ // !clearLock &&
546+ // multiple &&
547+ // !mergedSearchValue &&
548+ // displayValues.length
549+ // ) {
550+ // const cloneDisplayValues = [...displayValues];
551+ // let removedDisplayValue = null;
552+
553+ // for (let i = cloneDisplayValues.length - 1; i >= 0; i -= 1) {
554+ // const current = cloneDisplayValues[i];
555+
556+ // if (!current.disabled) {
557+ // cloneDisplayValues.splice(i, 1);
558+ // removedDisplayValue = current;
559+ // break;
560+ // }
561+ // }
562562
563- // if (removedDisplayValue) {
564- // onDisplayValuesChange(cloneDisplayValues, {
565- // type: 'remove',
566- // values: [removedDisplayValue],
567- // });
568- // }
569- // }
563+ // if (removedDisplayValue) {
564+ // onDisplayValuesChange(cloneDisplayValues, {
565+ // type: 'remove',
566+ // values: [removedDisplayValue],
567+ // });
568+ // }
569+ // }
570570
571- // if (mergedOpen && (!isEnterKey || !keyLockRef.current)) {
572- // // Lock the Enter key after it is pressed to avoid repeated triggering of the onChange event.
573- // if (isEnterKey) {
574- // keyLockRef.current = true;
575- // }
576- // listRef.current?.onKeyDown(event, ...rest );
577- // }
571+ if ( mergedOpen && ( ! isEnterKey || ! keyLockRef . current ) ) {
572+ // Lock the Enter key after it is pressed to avoid repeated triggering of the onChange event.
573+ if ( isEnterKey ) {
574+ keyLockRef . current = true ;
575+ }
576+ listRef . current ?. onKeyDown ( event ) ;
577+ }
578578
579- // onKeyDown?.(event, ...rest );
580- // };
579+ onKeyDown ?.( event ) ;
580+ } ;
581581
582582 // // KeyUp
583583 // const onInternalKeyUp: React.KeyboardEventHandler<HTMLDivElement> = (event, ...rest) => {
@@ -929,6 +929,7 @@ const BaseSelect = React.forwardRef<BaseSelectRef, BaseSelectProps>((props, ref)
929929 onFocus = { onInternalFocus }
930930 onBlur = { onInternalBlur }
931931 onClearMouseDown = { onClearMouseDown }
932+ onKeyDown = { onInternalKeyDown }
932933 // Open
933934 onMouseDown = { onInternalMouseDown }
934935 />
0 commit comments